繁体   English   中英

由派生类定义的基类集合

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM