Skip to main content
 首页 » 编程设计

c#之派生类定义的基类集合

2024年05月10日37傻小

我在 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 
} 

我想不会,因为您不能再对基类中的接口(interface)进行操作,因为在您知道实际实例是什么类型之前,您不会知道您得到的是什么类型,但也许 C# 中有一些神奇的东西和这个类似吗?

请您参考如下方法:

你可以像这样使基类泛化:

public class Base<T> 
{ 
    public List<T> Data { get; set; } 
} 

然后在创建派生类时,可以指定T像这样:

public class Derived : Base<Elephant> 
{ 
 
} 

对于 Derived 的消费者, Data 的类型属性是 List<Elephant> .