簡體   English   中英

如何覆蓋子類中抽象類中成員的類型

[英]How to override the type of a member in abstract class in child class

我有以下代碼:

public abstract class TestProperty
{
    public abstract Object PropertyValue { get; set; }
}

public class StringProperty: TestProperty
{
    public override string PropertyValue {get;set}
}

哪個會產生編譯錯誤,我想知道我是否必須在TestProperty中使用泛型類型才能實現我的目標,即在子類中具有相同名稱的不同類型?

是的,C#不支持協變返回類型。 您確實可以在此處使用泛型:

public abstract class TestProperty<T>
{
    public abstract T PropertyValue { get; set; }
}

public class StringProperty : TestProperty<string>
{
}

此時無需重寫-實際上,除非您要執行其他任何操作,否則不妨完全擺脫StringProperty而只需使用TestProperty<string>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM