Меня интересует следующий код C #:
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; }
}
}
Но я думал, что весь смысл введения авто-свойств в C # состоял в том, чтобы избежать написания более позднего кода.Означает ли это, что авто-свойства не имеют отношения к структурам?