div class=“articleAbstract“>
Die Nutzung eines Objekt-Initializer ist ein sehr übersichtlicher Mechanismus um Objekte nicht nur zu erzeugen, sondern im gleichen Zuge auch zu füllen. Mit nur einem Statement werden alle gewünschten Public-Properties eines Objektes initialisiert. Weniger bekannt ist, dass der Mechanismus sich hervorragend eignet, um auch List und Dictionary als Static Member mit Elementen zu füllen.
Ein Objekt wird per Objekt-Initializer gefüllt:
Person p = new Person { Name = "Matthias Malsy", Company = "SDX AG" };
Dabei spielt es keine Rolle, ob dies eine lokale Variable oder ein static Property einer Klasse ist.
class Whatever
{
static Person p = new Person { Name = "Matthias Malsy", Company = "SDX AG" };
...
}
Die Anwendung auf Listen nutze ich persönlich sehr gerne. Für eine lokale Variable eliminiert die Initialisierung diverse Add-aufrufe bzw. die Erzeugung eines (Zwischen-) Arrays.
class Whatever
{
static List<Person> p = new List<Person> {
new Person { Name = "Matthias Malsy", Company = "SDX AG" },
new Person { Name = "Bill Who", Company = "Microsoft" },
};
...
}
Die Anwendung auf Collections sieht man eher selten, spart aber einen Static-Constructor der sonst die Initialisierung übernommen hätte.
class Whatever
{
static Dictionary<string,Person> p = new Dictionary<string,Person> {
{"MMalsy", new Person { Name = "Matthias Malsy", Company = "SDX AG" } },
{"WBill", new Person { Name = "Bill Who", Company = "Microsoft" } },
};
...
}
Sie sehen gerade einen Platzhalterinhalt von Facebook. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von Instagram. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen