Aus dem Kurs: C# – Tipps und Tricks

Felder als readonly markieren

Felder einer Klasse können einfach als readonly markiert werden und sind somit nur noch vom Konstruktor aus veränderbar. Später können diese Werte nur noch gelesen werden, und der Einsatz ist relativ einfach, trotzdem werfen wir einen kurzen Blick auf dieses nette kleine Feature. Und der Blick sieht so aus, dass ich hier das Beispiel habe, ich deklariere eine Klasse und hier unten erzeuge ich zur Laufzeit von dieser Klasse eine Instanz und kann dann auf die entsprechenden Felder zugreifen, das heißt, ich kann den Namen entsprechend abrufen, das ist überhaupt kein Problem. Was ich aber nicht machen kann, ich kann dem Namen keinen neuen Wert geben. Der Coder der Klasse ist recht einfach. Ich habe hier meine Felder, und alle sind mit readonly ausgestattet, das heißt, ich kann nur aus dem Konstruktor oder aus einem Konstruktor, aus einer der Basisklassen diese Werte setzen. Und wenn die Konstruktoren mal gelaufen sind, dann sind diese Werte readonly, können also nur noch gelesen werden. Der einzige Wermutstropfen hier ist, dass, wenn ich beispielsweise mit WPF arbeite und so etwas wie ein INotifyChangedEvent in die Eigenschaften reinbringen würde, kann ich das nicht machen, weil es sind ja keine Eigenschaften. Und wenn ich mit dem alten Entity Framework, also mi 6X arbeite, dann habe ich auch das Problem, dass dies keine Eigenschaften, sondern Felder sind. Aber in Situationen, wo ich mit Feldern genauso gut umgehen kann wie mit Eigenschaften, ist das eine nette Sache, um sicherzustellen, dass diese Werte im Nachhinein nicht mehr modifiziert werden können.

Inhalt