派生类定义的基类集合
本文关键字:基类 集合 定义 派生 | 更新日期: 2023-09-27 18:33:41
我在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>
。