我想弄清楚是否有一種方法來推廣一個函數,該函數需要一個具有相似屬性的兩個不相關對象的Hashset。下面我有一些示例代碼:推廣一個函數
private IList<IDictionary<string, string>> BuildDictionary(HashSet<ClassA> ClassA)
{
IList<IDictionary<string, string>> data = new List<IDictionary<string, string>>();
foreach (var a in ClassA)
{
Dictionary<string, string> aDictionary = new Dictionary<string, string>();
aDictionary.Add(a.Code, a.Code + "," + a.Name);
data.Add(aDictionary);
}
return data;
}
private IList<IDictionary<string, string>> BuildDictionary(HashSet<ClassB> ClassB)
{
IList<IDictionary<string, string>> data = new List<IDictionary<string, string>>();
foreach (var b in ClassB)
{
Dictionary<string, string> bDictionary = new Dictionary<string, string>();
bDictionary.Add(b.Code, b.Code + "," + b.Name);
data.Add(bDictionary);
}
return data;
}
因此作爲顯而易見的代碼,這兩個類是不相關的,但他們都是在一個HashSet,幷包含類似的屬性(代碼名)。我嘗試過使用泛型T,但由於我沒有創建通用類T這一事實而失敗了。無論如何無需創建一個新課程就可以解決這個問題嗎?
這兩個類的接口如何? – Pikoh
您是否可以訪問這兩個類,以便實現一個接口? – pstrjds
您可以使用反射來檢查一個類是「typeof」還是「is」,並在T:class時使用T「 – Luther