C# 6.0 İle Auto Property Initializers Kullanımı
C# 6.0 içerisinde yer alan bu özellik ile Auto Property' lere default değer ataması yapılabilmektedir. İlk olarak 6.0 öncesinde benzer işlemin nasıl yapıldığını inceleyelim.
public class Personel
{
public Personel(string ad)
{
this.Ad = ad;
}
public string Ad { get; set; }
}
Ya da
public class Personel
{
public Personel()
{
this.Ad = "ali";
}
public string Ad { get; set; }
}
şeklinde tanımlama yapıyoruz. Benzer işlemi 6.0 içerisinde aşağıdaki gibi yapabiliyoruz.
public class Personel
{
public string Ad { get; set; } = "Ali";
}
Kod yazımı bu şekilde oldukça kısalmaktadır.
public class Personel
{
public string Ad { get; set; } = string.Concat("Ali", " ", "Can");
}
Yukarıdaki gibi de değer ataması yapılabilmektedir. Sadece getter' ı olan bir auto-property için ilk değer ataması yapmak istediğimizde bunu 6.0 öncesinde şu şekilde yapabiliyoruz.
public class Personel
{
public Personel(string ad)
{
this.Ad = ad;
}
public string Ad { get; }
}
public class Personel
{
public Personel()
{
this.Ad = "Ali Can";
}
public string Ad { get; }
}
public class Personel
{
private readonly string ad = "ali";
public Personel()
{
this.Ad = ad;
}
public string Ad { get; }
}
public class Personel
{
private readonly string ad = "ali";
public string Ad { get { return ad; } }
}
Yukarıki yöntemlerden herhangi birisi kullanılabilir. Bunun yerine 6.0 ile getter only auto property' lere aşağıdaki gibi default değer ataması yapılabilmektedir.
public class Personel
{
public string Ad { get; } = "Ali Can";
}
Aşağıda auto property initializers ile ilgili farklı örnekler bulunmaktadır.
public class Personel
{
public string Ad { get; } = "Ali Can";
public DateTime KayitTarihi { get; set; } = DateTime.Now;
public bool Aktif { get; set; } = true;
public Image Resim { get; set; } = Image.FromFile("Resim");
public Color Renk { get; set; } = Color.Red;
public List<Personel> Elemanlar { get; set; } = new List<Personel>();
}

