C# 6.0 İle Auto Property Initializers Kullanımı

20.11.2015 Hikmet Okumuş 628 0 C#


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>();
		    }
		

Başarılar dilerim.




Yorum