Im Allgemeinen liegt es an Ihnen, was Sie mit einer Eigenschaft und ihrem Hintergrundfeld beim Abrufen / Einstellen tun sollten.
In den meisten Fällen sollten Sie, um über den gesamten Code hinweg konsistent zu sein, öffentliche Zugriffsmethoden verwenden, wo immer diese verfügbar und angemessen sind. Dadurch können Sie mit minimalen Codeänderungen umgestalten. Wenn die Methode, mit der diese Einstellung vorgenommen wird, aus der Klasse entfernt und an einer anderen Stelle platziert werden muss, an der das Hintergrundfeld nicht mehr verfügbar ist (wie bei einer Basisklasse), wen interessiert das? Sie verwenden etwas, das überall dort verfügbar ist, wo die Klasse selbst die Arbeit erledigt. Das Hintergrundfeld ist in den meisten Fällen ein Implementierungsdetail. Niemand außerhalb Ihrer Klasse sollte wissen, dass es existiert.
Die Hauptsituation, an die ich denken kann, wenn Sie das Hintergrundfeld und NICHT den Eigenschafts-Accessor verwenden sollten, ist, wenn der Accessor über zusätzliche Logik verfügt (Validierung oder Aktualisierung anderer Statusinformationen in der Klasse), die Sie nicht ausführen möchten. Die anfängliche Besetzung eines Objekts ist ein Beispiel. Möglicherweise haben Sie eine Klasse, die zwei Eigenschaftswerte verwendet, um einen dritten zu berechnen, der ebenfalls in einem Hintergrundfeld gespeichert ist (aus Persistenzgründen). Beim Initialisieren einer neuen Kopie dieses Objekts mit Daten aus der Datenbank können sich die Eigenschafts-Accessoren, die jeweils den dritten Wert neu berechnen, beschweren, wenn der andere erforderliche Wert nicht festgelegt ist. Indem Sie mithilfe der Hintergrundfelder die Anfangswerte dieser zwei (oder drei) Eigenschaften festlegen, umgehen Sie die Überprüfungs- / Berechnungslogik, bis sich die Instanz in einem ausreichend konsistenten Zustand befindet, damit die Logik normal funktioniert.