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


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

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

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

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

4 ответа:

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

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

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

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

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