In C# gibt es die "Standard" Initialisierungstechnik {Property1 = "a", Property2 = "b"}, und es gibt ein paar spezielle Varianten für Sammlungen (Liste und Wörterbuch). {Wert1, Wert2} und {{"Schlüssel1", Wert1}, {"Schlüssel2", Wert2}}.Gibt es in C# eine Möglichkeit, benutzerdefinierte Objektinitialisierer für neue Datentypen zu schreiben?
Ich hätte gerne einen rekursiven Objektinitialisierer für einen Baum-Datentyp, aber ich weiß nicht, ob es eine Möglichkeit gibt, diesen Mechanismus anzupassen. Ich hätte gerne etwas, das wie ein S-Ausdruck aussieht. {item1 {item2 item3 item4} {item5 item6}}
Ich mache das über Konstruktoren, aber ich hätte gerne eine Terser-Syntax.
Sie müssen ICollection nicht implementieren - nur IEnumerable –
Das ist nicht ganz so knapp wie das, was ich mir vorgestellt habe, aber es sieht so aus, als ob es so nah wie möglich ist .. Es sieht so aus, als ob die Antwort darauf ist passen Sie den Objektinitialisierungsmechanismus wirklich an, aber Sie können auf die integrierte IEnumerable-Initialisierungsunterstützung piggyback. – darthtrevino
Found ein Blogpost, der dieses http://resharper.blogspot.com/2 diskutiert 007/09/c-30-collection-initializers-incomplete.html – darthtrevino