我有一組實現接口(IMyClass
)的類(MyClass1, MyClass2, MyClass3
)。使用通用類型或接口的C#集合
我感興趣的創建方法來填充,並返回有共同的接口MyClass
X
(List<IMyClass>
)對象的列表(Collection.Generics.Lists<>
)。但是如何?
每個班級都有一個構造函數MyClass
X
它做了一些不同的事情。所以我不能創建一個BaseClass併爲所有人使用通用構造函數。
通過界面我不能這樣做:
public List<IMyClass> Fill(string[] ItemsPassedByParam, IMyClass InstanceOfMyClassX)
List MyList = new List<IMyClass>();
foreach (item in ItemsPassedByParam)
{
MyList.Add (new IMyClass (item)); //can't do new from an Interface!!
}
}
我也嘗試過使用泛型類型,TMyClass在下面的例子,但也很適合我(雖然我不是泛型類型非常深刻的概念):
public List<TMyClass> Fill(string[] ItemsPassedByParam, Type TypeOfMyClassX)
List MyList = new List <TMyClass>();
foreach (item in ItemsPassedByParam)
{
MyList.Add (new TMyClass (item)); //can't do new from a Generic Type!!
}
}
我試圖也來外部的MyClass
X
在方法的構造內的代碼,但我不能調用該方法因爲去對象未初始化(沒有new()
)。
在這些情況下是哪種解決方案?
提前致謝!
什麼是'item'?它是否確定類型? – cjk 2010-08-19 15:26:42
此外,什麼是 「新目錄();」應該是?沒有什麼可以想象的編譯。 –
2010-08-19 15:28:25