Ответ 1
Как только вы захотите сделать что-либо обычай в геттере или сеттере, вы больше не сможете использовать свойства auto.
Я хочу сделать это:
public Name
{
get;
set
{
dosomething();
??? = value
}
}
Можно ли использовать автоматическое генерируемое личное поле?
Или требуется, чтобы я реализовал его следующим образом:
private string name;
public string Name
{
get
{
return name;
}
set
{
dosomething();
name = value
}
}
Как только вы захотите сделать что-либо обычай в геттере или сеттере, вы больше не сможете использовать свойства auto.
Вы можете попробовать что-то вроде этого:
public string Name { get; private set; }
public void SetName(string value)
{
DoSomething();
this.Name = value;
}
Это невозможно. Автоматически реализованные свойства или пользовательский код.
Требуется, чтобы вы полностью реализовали его с учетом вашего сценария. Оба get
и set
должны быть либо автоматически реализованы, либо полностью реализованы вместе, а не комбинацией из двух.
Начиная с С# 7, вы можете использовать определения тела выражений для свойства get
и set
accessors.
private string _name;
public string Name
{
get => _name;
set
{
DoSomething();
_name = value;
}
}