This article has been localized into German by the community.
Objektinitialisierer
Mit C # 3.0 ist das Initialisieren von Objekten und Sammlungen wesentlich einfacher geworden. Betrachten Sie diese einfache Fahrzeugklasse, in der wir die automatischen Eigenschaften verwenden, die in einem vorherigen Kapitel beschrieben wurden:
class Car
{
public string Name { get; set; }
public Color Color { get; set; }
}
In C#2.0 müssten wir jetzt zum Beispiel folgenden Code schreiben, um eine Car-Instanz zu erstellen und ihre Eigenschaften festzulegen:
Car car = new Car();
car.Name = "Chevrolet Corvette";
car.Color = Color.Yellow;
Es ist wirklich gut, aber mit C#3.0 kann es dank der neuen Syntax für die Objektinitialisierung etwas sauberer gemacht werden:
Car car = new Car { Name = "Chevrolet Corvette", Color = Color.Yellow };
Wie Sie sehen, verwenden wir nach dem Instantiieren eines neuen Car-Objekts einen Satz geschweifte Klammern. Innerhalb dieser Objekte haben wir Zugriff auf alle öffentlichen Eigenschaften der Car-Klasse. Das spart etwas Tippen und etwas Platz. Das coole daran ist, dass es auch geschachtelt werden kann. Betrachten Sie das folgende Beispiel, in dem wir der Klasse Car eine neue komplexe Eigenschaft wie folgt hinzufügen:
class Car
{
public string Name { get; set; }
public Color Color { get; set; }
public CarManufacturer Manufacturer { get; set; }
}
class CarManufacturer
{
public string Name { get; set; }
public string Country { get; set; }
}
Um ein neues Auto mit C#2.0 zu initialisieren, müssten wir Folgendes tun:
Car car = new Car();
car.Name = "Corvette";
car.Color = Color.Yellow;
car.Manufacturer = new CarManufacturer();
car.Manufacturer.Name = "Chevrolet";
car.Manufacturer.Country = "USA";
Mit C#3.0 können wir es stattdessen so machen:
Car car = new Car {
Name = "Chevrolet Corvette",
Color = Color.Yellow,
Manufacturer = new CarManufacturer {
Name = "Chevrolet",
Country = "USA"
}
};
Oder für den Fall, dass Sie sich nicht um die Lesbarkeit sorgen, wie folgt:
Car car = new Car { Name = "Chevrolet Corvette", Color = Color.Yellow, Manufacturer = new CarManufacturer { Name = "Chevrolet", Country = "USA" } };
Genau wie bei den automatischen Eigenschaften handelt es sich hierbei um syntaktischen Zucker - Sie können ihn entweder verwenden oder einfach bei der alten Schreibweise bleiben.