Visual Studio 2017 предлагает убрать приватное поле для публичной собственности - PullRequest
0 голосов
/ 18 октября 2018

Я только что обновил свой VS2017, и теперь он предлагает мне удалить все приватные поля и просто использовать общедоступные свойства.

Оригинальный код:

private string description = "";
public string Description { get => description; set => description = value; }

Теперь он предлагает мне просто использовать:

        public string Description { get; set; } = "";

Я что-то упустил, потому что я думал, что это плохая практика, основанная на https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1051-do-not-declare-visible-instance-fields?view=vs-2017

Каков будет правильный путь или какое преимущество имеет тот или иной способ?

1 Ответ

0 голосов
/ 18 октября 2018

Обе реализации будут генерировать один и тот же базовый код промежуточного языка.Тем не менее, предлагаемые изменения приведут к более удобочитаемому коду.

Хотя исходный код на самом деле не сложен для чтения, он более «многословный», поэтому больше усилий для следующего кодера прочитать позже (или себя 6)месяцы в будущем).Чтобы понять код с полем поддержки, вы смотрите на get / set, а затем на объявленную приватную переменную, чтобы увидеть, что на самом деле изменяется или используется.Упрощенный код находится в одной строке и поэтому требует меньше усилий.

Предупреждение в документе CA1051 относится к объявлению общедоступной переменной в противоположность общедоступному свойству.Тонкое различие заключается в том, что предлагаемый синтаксис реализует рекомендацию, поскольку язык позволяет использовать ярлык, чтобы не раскрывать базовую переменную и при этом легко читаться.

...