Site logo
Site logo
Programmieren aus Leidenschaft
Programmieren aus Leidenschaft

Objekt-Initialisierer


Es ist immer sehr viel Programmierarbeit nötig, wenn ein Objekt nach der Instanzierung mit Startwerten ausgestattet werden soll. Besonders dann, wenn die Klasse sehr viele Felder oder Eigenschaften hat. Um das folgende Beispiel überschaubar zu halten, soll aber eine Klasse mit nur wenigen Eigenschaften reichen.
public class Person
{
public string name { get; set; }
public string vorname { get; set; }
public int alter { get; set; }
public bool istWeiblich { get; set; }
}
Deklaration und Wertezuweisung eines Objektes dieser Klasse war in der Vergangenheit ein langwieriger Prozess und bestand aus einen Aneinanderreihung von recht einfachen Anweisungen, die aber trotzalledem alle eingegeben werden mussten. War man nicht sorgfältig, konnte es sogar passieren, dass ein Wert vergessen und nicht zugewiesen wurde.
Person meinePerson = new Person();
meinePerson.name = "Meier";
meinePerson.vorname = "Max";
meinePerson.alter = 57;
meinePerson.istWeiblich = false;
Durch Objekt-Initialisierer in C# 3.0 kann das aber auch so aussehen.
Person meinePerson = new Person()
{
name = "Meier",
vorname = "Max",
alter = 57,
istWeiblich = false
};
Zwar ist diese Schreibweise an dieser Stelle nur eine unerhebliche Verringerung des Programmieraufwandes, aber IntelliSense von Visual Studio ist eine große Hilfe. Wird einem Feld auf diese Art ein Wert zugewiesen, wird IntelliSense das erkennen und diese Feld nicht erneut vorschlagen. So kann man sicher gehen, dass allen Feldern Werte zugewiesen wurden, ohne dass man Gefahr läuft, ein Feld doppelt zuzuweisen oder ein Feld zu vergessen. Außerdem reduziert sich Instanzierung und Wertezuweisung auf eine einzige Anweisung im Programmcode.