我在努力做到不可能,還是簡單的不必要? GetList中的代碼對於A類的所有特化都是相同的,除了創建專業化的新實例的位之外。沒有默認構造函數,始終是相同的參數列表。這是C#泛型可能的變體嗎?
目前我使用的,而不是public static List<A> GetList(int i, Func<A> createMeAnInstance)
這感覺不乾淨。
abstract class A
{
protected A (int i)
{
}
public static List<T> GetList<T>(int i) where T : A
{
var list = new List<T>();
for(int x = 1; x< 100; x++)
{
var o = new T(i);
list.Add(o);
}
}
}
public class B : A
{
public B (int i) : base(i) {}
}
...
var list = A.GetList<B>(1);
將需要一個Func,因爲我創建了很多實例 – 2011-04-11 15:01:38
你能解釋爲什麼嗎? – 2011-04-11 15:03:17
你說的GetList(函數代碼)還是GetList(A a)?後者不適用於我 – 2011-04-11 15:05:22