Авто-свойства и структуры

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

10
задан Peter17 17 February 2011 в 12:56
поделиться