![](/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.