Как работает auto-property?

245
06 ноября 2017, 19:25

Имеется такой код :

public List < Vector2 > PointList {
    get {
        return _points;
    }
    set {
        _points = value;
    }
}

Resharper предлагает заменить на auto-property

public List<Vector2> PointList { get; set; }

Подскажите как вообще работает auto-property?

Answer 1

Auto-property сокращают код.

public List<Vector2> PointList { get; set; } - это тоже самое, что и в вашем случае:

List <Vector2> _points;
public List < Vector2 > PointList {
    get {
        return _points;
    }
    set {
        _points = value;
    }
}

Вот решарпер и предлагает упростить код. Убирается лишняя переменная _points, читается проще. На одном свойстве это может и не заметно, но если в классе куча таких полей, то у вас, по сути, было бы куча лишних переменных и куча похожих названий.

Если посмотреть, во что компилятор сгенерирует auto-property, то тоже самое будет. К примеру из:

public int IntProperty { get; private set; }

При генерации получится что-то вроде:

private int \u003CIntProperty\u003Ek__BackingField;
public int IntProperty
{
  get
  {
    return this.\u003CIntProperty\u003Ek__BackingField;
  }
  private set
  {
    this.\u003CIntProperty\u003Ek__BackingField = value;
  }
}
READ ALSO
Не удаётся правильно извлечь Date из DateTime

Не удаётся правильно извлечь Date из DateTime

Как было указано в заголовке, не получается правильно извлечь Date из переменной DateTimeВот мой код:

248
Как создать новый проект в существующем решении в Visual Studio на Mac?

Как создать новый проект в существующем решении в Visual Studio на Mac?

Как создать новый проект в существующем решении в Visual Studio на Mac?

236
(C#) (WPF) Работа с listBox [требует правки]

(C#) (WPF) Работа с listBox [требует правки]

Люди добрые, помогитеПерешёл с UWP на WPF, по этому не могу простое

313