[.NET] C# 3.0 Feature - Object initializer

Dieses Thema im Forum "Programmier Tutorials" wurde erstellt von q3mantis, 13. November 2008 .

Schlagworte:
  1. 13. November 2008
    C# 3.0 Feature - Object initializer

    Und wieder ein weiteres Feature von C# 3.0

    Thema Object initializer

    Jeder der einbisschen c# programmiert kenn die Problematik wenn man einen Objekt von seiner Klasse erzeugt und diverse Properties setzen will wie hier:

    Code:
    
    public class Browser
    {
     public string Name {get; set;}
     
     public int Version {get; set;}
    }
    
    public class RRUser
    {
     public string Name {get; set;}
     
     public int Age {get; set;}
    
     public int RaidRushPosts {get; set;}
    
     public decimal Nerdfactor {get; set;}
    
     public Browser UsedBrowser {get; set;}
    }
    
    ...
    
    RRUser objUser = new RRUser();
    
    objUser.Name = "q3mantis";
    objUser.Age = 99;
    objUser.RaidRushPosts = 12345;
    objUser.Nerdfactor = 100.00;
    
    
    Object initializing erleichtert die Schreibarbeit einbisschen in dem man gleich bei der Deklaration eines Typs Properties setzen kann.

    (Class RRUser und Browser von oben)
    Code:
    
    RRUser objTest = new RRUser()
    {
     Name = "q3mantis",
     Age = 99,
     RaidRushPosts = 12345,
     Nerfactor = 100.00
    };
    
    
    Das wars auch schon. Man kann die Funktion auch geschachtelt benutzen:

    Code:
    
    RRUser objUser = new RRUser()
    {
     Name = "q3mantis",
     Age = 99,
     UsedBrowser = new Browser
     {
     Name = "FireFox",
     Version = 3
     }
    }
    
    
    Ich habe im letzten Beispiel die runden Klammern bei "UsedBrowser" weggelassen die für die Constructor-Parameter sind. Falls man einen Parameterlosen Constructor hat bzw ihn benutzen will können diese Klammer bei Object initializing wegfallen.

    Viel Spaß beim Coden

    mfg
    q3mantis
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.