Я знаю, что при использовании автоматических свойств компилятор создает собственное поле поддержки за экраном. Однако во многих программах, которые я читаю, чтобы учиться, я вижу, как люди явно пишут
private int _backingField;
public int Property { get { return _backingField; } }
В чем разница между выше и ниже?
public int Property { get; private set; }
Я понимаю, что использование свойства очевидно, когда у вас действительно есть побочные эффекты в геттере или сеттере, но часто это не так. Кроме того, я понимаю, что вы должны явно использовать поле поддержки в случае структур, вы не можете получить доступ к их членам через свойства.
Единственное отличие, которое мне удалось найти, заключается в том, что способ вызова значения отличается внутри класса, в котором оно определено. Является ли это простым предпочтением, или есть что-то еще для вызова значения через его свойство или путем прямого доступа к поле? Простые условности?