22 Mayıs 2015

Constructor Kullanımının Avantajlı olduğu durumlar

using System;

namespace Classes
{
    public class Tavsan
    {
        public readonly string Ad;//Readonly olduğuna dikkat edelim
        public bool HavucSever;
        public bool InsanSever;
        public Tavsan() { }
        public Tavsan(string ad) { Ad = ad;}

    }
    
    class Program
    {      
        static void Main(string[] args)
        {
            Tavsan t1 = new Tavsan { Ad = "Bo", HavucSever = true, InsanSever = false };//HATA
            //Constructor 'un avantajı bir readonly parametresini nesnemizi oluştururken yaratabilmemizdir. Üstteki nesne hata verir
            //Çünkü önce bir class oluşturduk. Ve ardından üzerinde değişiklik yaptık.

            //Ama alltaki örneğe dikkat ederseniz constructor yapısı ile önce isimi yapılandırdık. Bu yüzden hata almadık. Nesnenin ileride değişmemesi gerektiği
            //durumlarda bu yapının kullanılması işimizi kolaylaştıracaktır.



            Tavsan t2 = new Tavsan("Bo") { HavucSever = true, InsanSever = false };

            Tavsan gecici1 = new Tavsan();
            gecici1.Ad = "Bo";//HATA
            gecici1.HavucSever = true;
            gecici1.InsanSever = false;
            Tavsan v1 = gecici1;


            Tavsan gecici2 = new Tavsan("Bo");
            gecici2.HavucSever = true;
            gecici2.InsanSever = false;
            Tavsan v2 = gecici2;
        }
    }
}