Ну, авто-свойство просто синтактично c сахар для свойства, которое получает и устанавливает автоматически созданное вспомогательное поле. Таким образом, следующие два кодовых сегмента похожи:
public int Precision { get; set; }
и
public int Precision
{
get { return <Precision>k__BackingField; }
set { <Precision>k__BackingField = value; }
}
Однако, когда вы создаете собственный лог c в своей собственности, нет такой вещи, как автоматически отступающее поле. Фактически, вы могли бы даже сделать следующее без какого-либо вспомогательного поля:
set { Console.WrteLine(); }
Однако начальное значение разрешается в следующем конструкторе:
MyClass()
{
this.<Precision>k__BackingField = myValue;
}
Однако, когда такой поддержки нет -field, что должен делать компилятор здесь?