![](/img/trans.png)
[英]Assign Derived Class Collection to Base Class Collection compilation error
[英]base class collection defined by derived class
我在C#中的經驗並不像我在C ++中那么接近,但試圖變得更好。
在C#中,是否存在一種創建包含屬性的基類的方法,該屬性是List,然后在派生類中定義該具體類型的T是什么?
public class Base
{
public List<T> Data { get; set; }
}
public class Derived : Base
{
// Declare to the world you use Base.data<Elephant>
// Callers of my Data property get Elephants
}
我想不會,因為你不能再對基類中的接口起作用,因為在你知道實際實例是什么類型之前你不知道你得到了什么類型,但也許在C#中有一些神奇的東西是類似的這個?
你可以像這樣使基類通用:
public class Base<T>
{
public List<T> Data { get; set; }
}
然后在創建派生類時,可以像這樣指定T
:
public class Derived : Base<Elephant>
{
}
對於Derived
的使用者, Data
屬性的類型是List<Elephant>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.