Sealed get, абстрактный набор в свойствах C # - PullRequest
0 голосов
/ 09 марта 2011

Поддерживает ли это C #?Какой синтаксис для этого?Я хочу, чтобы получение этого свойства было запечатано (на самом деле не имеет значения), и набор этого должен быть абстрактным.Я попытался следующий код (с неправильным синтаксисом), чтобы получить идею.

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

и

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

Ответы [ 3 ]

5 голосов
/ 09 марта 2011

Я не знаю синтаксиса для этого, но вы можете легко реализовать обходной путь, который будет только уродливым с точки зрения производного класса:

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 голос
/ 09 марта 2011

Не поддерживается.Что вы можете сделать, это что-то вроде этого:

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

protected abstract SetTarget(Texture target);
0 голосов
/ 09 марта 2011
public abstract X GetXXX();

public sealed SetXXX(X x){...}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...