簡體   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