我在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>
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句