派生类定义的基类集合

本文关键字:基类 集合 定义 派生 | 更新日期: 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>