0
的名單是否有可能有一般類型化項目,集合給出下面的代碼:創建一般類型的項目
public abstract class AGeneric<T> {
internal virtual List<T> MyList { get; set; }
}
public class LibA<T> : AGeneric<T> {
internal override List<T> MyList { get; set; }
}
public class LibB<T> : AGeneric<T> {
internal override List<T> MyList { get; set; }
}
public class LibC<T> : AGeneric<T> {
internal override List<T> MyList { get; set; }
}
//.
//.
//.
Main {
List<AGeneric> test = new List<AGeneric>(); //error - requires type;
List<BGeneric> test2 = new List<BGeneric>();
test2.first().
}
public abstract class BGeneric {
internal virtual List<T> MyList { get; set; } //cant use T to provide implementation
}
public class LibD<T> : BGeneric {
internal override List<T> MyList { get; set; }
}
public class LibE<T> : BGeneric {
internal override List<T> MyList { get; set; }
}
public class LibF<T> :BGeneric {
internal override List<T> MyList { get; set; }
}
的目標是有不同類型的列表,因爲從抽象類來實現類的目的是確定並返回一個強類型對象的數組。
'AGeneric'不是一個類型;一個泛型類型實際上並沒有定義一個類型,直到你給它一個類型參數。你的意思是說'力霸''延伸AGeneric '? –
2013-03-15 20:51:26
創建一個界面可以讓您在列表中保留的任何內容都可以實現嗎? – 2013-03-15 20:51:54
@EricLippert,力霸並基於類的定義擴展AGeneric 現在,我已經固定的代碼。 –
sammarcow
2013-03-15 20:55:24