C# Object Initializer Özelliği

Gereklilikler:Properties, new kavramı, reference types ve value types, contructions, object kavramı, auto implement properties gibi konuların bilinmesi konunun anlaşılması için gerekmektedir.

Bu dersimizde C# 3.0 ile gelen özelliği olan Object Initializer özelliğini inceliyeceğiz. Örnek olarak İnsan isimli classımızı ele alalım.

class Insan{      

public string Adi { get; set; };      

public int Yasi { get; set; };

}

Şimdi C# 2.0 ile Insan isimli classımızın bir örneğini oluşturup(instantiate) özelliklerine(properties) değer atamak için aşağıdaki kodu yazmamış gerekli.

Insan insan = new Insan();
insan.Adi="Fuat";
insan.Yasi="21"; 
 

C# 3.0 Object Initializer Syntax  ile yukarıdaki kodu daha anlaşır, daha temiz ve daha kısa bir şekilde yazabiliriz.

Insan insan = new Insan{ Adi="Fuat", Yasi="21"};

İşi biraz daha kompleks hale getirelim. Ve Insan isimli classımızı güncelliyelim ve bir class daha ekliyelim.

 
class Insan
{
      public string Adi { get; set; };
      public int Yasi { get; set; };
      public Fizik Fiziksel  { get; set; };
}
class Fizik
{
      public int Boy  { get; set; };
      public int Kilo  { get; set; };


}


Şimdi C# 2.0 da Insan nesnesinin örneğini oluşturup properties alanlarına değer atıyalım.

   Insan insan = new Insan();

insan.Adi="Murat";
insan.Soyadi="Tatar";
insan.Fiziksel = new Fizik();
insan.Fiziksel.Boy=176;
insan.Kilo=65;
Şimdi ise bunu C# 3.0 Object Initializer ile yapalım. Biraz kompleks gibi gelebilir ama mantığı çok basit.
 
Insan insan = new Insan
{
   Adi="Murat",
   Soyadi="Tatar",
   Fiziksel= new Fizik
     {
         Boy=176;
         Kilo=65;      
     }
};
 
Tek satır olsun daha güzel gözüksün diyorsanızda:
Insan insan = new Insan {Adi="Murat", Soyadi="Tatar", Fiziksel= new Fizik{Boy=176; Kilo=65;} };