Mehr von Jürgen Gutsch

Mehr von Jürgen Gutsch

Empfehlungen von Jürgen Gutsch

Blog-Empfehlungen von Jürgen Gutsch

Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe

Jürgen Gutsch

ASP.NET und mehr...

News

Neues .NET 3.5 Feature: Object Initializers

Die Nummer drei die ich hier vorstellen möchte, ist ebenfalls für Leute wie mich das absolute Highlight von .NET 3.5. Und zwar sind es die sogenannten Objekt Initialisierer.

Man nehme die simple Klasse aus dem letzten Beitrag:
public class Dog
{
    public string Name { get; set; }
    public int Age { get; set; }
    public int Height { get; set; }
}

Und man Instanziere dieses:
Dog myOldDog = new Dog();
myOldDog.Name = "Waldi";
myOldDog.Age = 12;
myOldDog.Height = 25;

Zu viel Code? Wirklich?
Na dann halt so:
Dog myDog = new Dog { Name = "Hasso", Age = 6, Height = 87 };

Auf diese Art können ab sofort mit .NET 3.5 Objekte schnell initialisiert werden.

Hier noch eine extremere Variante: Angenommen der Hund hätte ein Herrchen:
public class Dog
{
    public string Name { get; set; }
    public int Age { get; set; }
    public int Height { get; set; }
    public Person Owner { get; set; }
}
public class Person
{
    public string Name { get; set; }
    public string Address { get; set; }
    public int Age { get; set; }
}

Dann könnte das so aussehen:
Dog myDog = new Dog
{
    Name = "Hasso",
    Age = 6,
    Height = 87,
    Owner = new Person
    {
        Name = "Jürgen Gutsch",
        Address = "www.gutsch-online.de",
        Age = 29
    }
};

Der Compiler macht aus diesem Code wieder eine Herkömmliche Objekt Initialisierung:

Weitere Informationen zu den Object Initializers:
http://community.bartdesmet.net/blogs/bart/archive/2006/12/04/C_2300_-3.0-Feature-Focus-_2D00_-Part-2-_2D00_-Object-Initializers.aspx
http://weblogs.asp.net/scottgu/archive/2007/03/08/new-c-orcas-language-features-automatic-properties-object-initializers-and-collection-initializers.aspx
http://www.winterdom.com/weblog/2006/08/28/ObjectInitializersInC30.aspx
http://blog.veloursnebel.de/PermaLink,guid,6f46a88a-1783-4e80-9060-a7c7131da959.aspx

Posted: Donnerstag, 15. November 2007 22:54 von Jürgen Gutsch

Kommentare

Keine Kommentare

Anonyme Kommentare sind nicht zugelassen