Мне интересно о следующем С# -коде:
struct Structure
{
public Structure(int a, int b)
{
PropertyA = a;
PropertyB = b;
}
public int PropertyA { get; set; }
public int PropertyB { get; set; }
}
Он не компилируется с ошибкой "Объект 'this' не может использоваться до того, как все его поля будут присвоены". Для аналогичного класса он компилируется без каких-либо проблем.
Для рефакторинга можно сделать следующее:
struct Structure
{
private int _propertyA;
private int _propertyB;
public Structure(int a, int b)
{
_propertyA = a;
_propertyB = b;
}
public int PropertyA
{
get { return _propertyA; }
set { _propertyA = value; }
}
public int PropertyB
{
get { return _propertyB; }
set { _propertyB = value; }
}
}
Но, хотя я считаю, что цель введения авто-свойств в С# заключалась в том, чтобы избежать написания более позднего кода. Означает ли это, что авто-свойства не относятся к структурам?