Cuma, Eylül 21

C# Class vs Struct

       Class ve struct arasında değer tip referans tip ayrımı vardır. Class bildiğiniz gibi referans tipli fakat struct değer tiplidir, class ve struct .Net'teki 5 temel tipin 2 sidir. Bir örnekle kullanımını ve arasındaki farkı anlatmaya çalışalım. Struct class'dan biraz farklıdır ;
  • Struct' lar default constructor içeremez
  • Struct içerisinde Field'lar değer almadan metotlar kullanılamaz
  • Kalıtım yapılamaz fakat interfaceler implemente edilebilir.
    

    struct STOgrenci   //Bir struct tanımladık ve değer tipli
    {
        public string Ad { get; set; }
    }
    class CSOgrenci   //Bir class tanımladık ve referans tipli
    {
        public string Ad { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            CSOgrenci ogrenci1 = new CSOgrenci();  //Class nesnesi örnekledik
            ogrenci1.Ad = "Mehmet";

            STOgrenci ogrenci2 = new STOgrenci();  //Struct nesnesi örnekledik
            ogrenci2.Ad = "Ali";

            ClassKabulEt(ogrenci1);  //İsmini değiştirmek için metoda gönderiyoruz
            Console.WriteLine("Ogrenci 1 Class  --"+ogrenci1.Ad);

            StructKabulEt(ogrenci2); //İsmini değiştirmek için metoda gönderiyoruz
            Console.WriteLine("Ogrenci 2 Struct --"+ogrenci2.Ad);
            Console.ReadLine();
        }
        static void ClassKabulEt(CSOgrenci Ogrenci)
        {
            Ogrenci.Ad = "YeniIsim";
        }
        static void StructKabulEt(STOgrenci Ogrenci)
        {
            Ogrenci.Ad = "YeniIsim";
        }     
    }         //Öğrenci 1'in ismi değişti çünkü o referans türlü bir class.
              //Öğrenci 2'nin ismi değişmedi çünkü o değer türlüdür.
Class vs Struct

Hiç yorum yok: