Hast du mal was von den Get-/Set-Methoden gehört?
In Java werden die genutzt. Das sind in der Regel nur simple Methoden, die einzig und allein dafür da sind, eine private Variable der Klasse nach Außen abrufbar zu machen (z.B. GetName()), oder diese änderbar zu machen (z.B. SetName(string value))
In C# gibt es da aber die Propertys, die an sich eigentlich nur eine andere Umsetzung dieser Get-Set-Methoden sind. Auf Arbeit habe ich gelernt, dass der Compiler die get- und set-Accessoren eigentlich sowieso nur mit entsprechenden Methoden austauscht und die dann auch so nutzt.
Der Vorteil von Propertys ist aber der, dass sie sich ganz normal nutzen lassen, wie eine Variable.
Dennoch gibt es den Anweisungsblock in den Accessoren get und set.
Der get-Accessor sollte, wie schon gesagt, nix weiter tun, als die private Variable nach außen hin zugänglich machen. Wenn es nötig ist, kannst du da noch einbauen, dass die Anzahl der Zugriffe gezählt wird, aber eine andere Nutzung fällt mir jetzt auch nicht ein.
Der meiner Meinung nach größte Vorteil findet sich aber im set-Accessor, denn da kannst du hin gehen und nach schauen, ob der Wert, der übergeben wird, auch so stimmt. Du kannst z.B. prüfen, ob der Wert leer ist und dann lässt deine Name-Property keinen leeren Text zu, schließlich hat jeder einen Namen.
Das könntest du natürlich auch auslagern und überall mit einer extra dafür angelegten Methode prüfen, ob z.B. das Geburtsdatum im richtigen Bereich liegt, aber es wäre doch viel einfacher, wenn du ganz ohne daran zu denken, das eingegebene Geburtsdatum in die Variable schreiben kannst und damit ist die Sache geklärt.
Manchmal ist es sinnvoll, dass die Property dann auch eine Exception wirft, ich habe es letztens auch eingebaut, dass die Property den eingegebenen Wert intern entsprechend anpasst, weil ich ganz bewusst will, dass z.B. ein Zahlenwert in den erlaubten Bereich "geschoben" wird.