Eigentlich ist die Antwort doch ganz einfach: Der Zugriff erfolgt innerhalb der Klasse immer über die Property, außer, ich muss bewusst die Getter/Setter-Logik. Dann verwende ich direkt den
backing store, also das private Feld. Und wenn man sich das genau überlegt, dann ist das auch nur an einer einzigen Stelle sinnvoll: Beim Initialisieren des Wertes. Und auch das sollte nur an einer Stelle in der Klasse erfolgen.
Wenn man an mehreren Stellen den die Propertyogik umgeht, ist mit an Sicherheit grenzender Wahrscheinlichkeit etwas faul im Design und man sollte sich genau überlegen, ob man mit diesem
design flaw weiterprogrammiert, oder erst einmal aufräumt. Das kann wenigstens über eine Methode 'InitializeProperty' erfolgen, um wenigstens das DRY einzuhalten, aber auch hier sollte ein mehrfacher Aufruf zu selbstkritischen Designfragen führen.
PS: Wieso schreibe ich das, wo doch himitsu fast das Gleiche gesagt hat?