Свойства С#: как использовать свойство настраиваемого набора без частного поля? - программирование
Подтвердить что ты не робот

Свойства С#: как использовать свойство настраиваемого набора без частного поля?

Я хочу сделать это:

public Name
{
    get;
    set
    {
        dosomething();
        ??? = value
    }
}

Можно ли использовать автоматическое генерируемое личное поле?
Или требуется, чтобы я реализовал его следующим образом:

private string name;
public string Name
{
    get
    {
        return name;
    }
    set
    {
        dosomething();
        name = value
    }
}
4b9b3361

Ответ 1

Как только вы захотите сделать что-либо обычай в геттере или сеттере, вы больше не сможете использовать свойства auto.

Ответ 2

Вы можете попробовать что-то вроде этого:

public string Name { get; private set; }
public void SetName(string value)
{
    DoSomething();
    this.Name = value;
}

Ответ 3

Это невозможно. Автоматически реализованные свойства или пользовательский код.

Ответ 4

Требуется, чтобы вы полностью реализовали его с учетом вашего сценария. Оба get и set должны быть либо автоматически реализованы, либо полностью реализованы вместе, а не комбинацией из двух.

Ответ 5

Начиная с С# 7, вы можете использовать определения тела выражений для свойства get и set accessors.

Подробнее здесь

private string _name;

public string Name
{
    get => _name;
    set
    {
        DoSomething();
        _name = value;
    }
}