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