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