密封获取,C#属性中的抽象集

时间:2011-03-09 19:50:38

标签: c# inheritance properties

C#是否支持此功能?这是什么语法? 我希望这个属性的获取被密封(并不重要),并且这个集合是抽象的。 我尝试了以下代码(语法不正确)来理解这个想法。

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

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

3 个答案:

答案 0 :(得分:5)

我没有知道的语法来做到这一点,但你可以轻松地实现一个解决方法,从派生类的角度来看只会是丑陋的:

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)。

您能否提供有关您要实现的目标的更多信息?可能有更好的方法。

答案 1 :(得分:1)

不支持。你能做的就是这样:

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

protected abstract SetTarget(Texture target);

答案 2 :(得分:0)

public abstract X GetXXX();

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