簡體   English   中英

密封獲取,C#屬性中的抽象集

[英]Sealed get, abstract set in C# properties

C#支持嗎? 這是什么語法? 我希望此屬性的獲取是密封的(並不重要),而此屬性的集合應該是抽象的。 我已經嘗試使用以下代碼(語法錯誤)來理解。

public sealed Texture target
{
    get { return texture; }
}
public abstract Texture target { set; }

public Texture target
{
    sealed get { return texture; }
    abstract set;
}

我不知道這樣做的語法,但是您可以輕松實現一個變通方法,該變通方法僅從派生類的角度來看是丑陋的:

public abstract class Base
{
    private string name;
    public string Name
    {
        get { return name; }
        set { SetName(value); }
    }

    protected abstract void SetName(string value);
}

另一方面,不清楚如何設置name (或您的情況下的texture ),除非將其變成受保護的字段(ick,IMO)。

您能否提供有關您要實現的目標的更多信息? 可能有更好的方法。

不支持。 您可以做的是這樣的:

public Texture target
{
    get { return texture; }
    set { SetTarget(value); }
}

protected abstract SetTarget(Texture target);
public abstract X GetXXX();

public sealed SetXXX(X x){...}

暫無
暫無

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

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