Автосвойства с фоновым полем или без него — предпочтение?

Я знаю, что при использовании автосвойств компилятор создает собственное резервное поле за экраном. Однако во многих программах, которые я читаю, чтобы чему-то научиться, я вижу, как люди явно пишут

private int _backingField;

public int Property { get { return _backingField; } }

В чем разница между выше и ниже?

public int Property { get; private set; }

Я понимаю, что использование этого свойства очевидно, когда у вас действительно есть побочные эффекты в геттере или сеттере, но часто это не так. Кроме того, я понимаю, что вы должны явно использовать поле поддержки в случае структур, вы не можете получить доступ к их членам через свойства.

Единственное отличие, которое мне удалось найти, заключается в том, что способ вызова значения отличается внутри класса, в котором оно определено. Является ли это простым предпочтением или есть что-то большее, чем вызов значения через его свойство или с помощью прямой доступ к полю? Простые соглашения?

11
задан BartoszKP 10 September 2015 в 15:52
поделиться