Şimdi örnek ile Value Type ve Referens Type'ı inceliyelim.
Örnekte, int türünde a ve b adlarında iki Value Type değişken tanımladık. Değişkenlere başlangıç değeri atadıktan sonra a değişkenin değerini b değişkenine atadık. Sonra her iki değişkeni de yazdırdık. Her iki değişken Stack de ayrı alanlarda depolandığı için birbirinden bağımsız kendi değerlerini depolayabildiler.
int a = 0;
int b = 0;
a = 10;
b = a;
b += 5;
MessageBox.Show("a=" + a.ToString());
MessageBox.Show("b=" + b.ToString());
Örnekte StringBuilder Class'ından sb1 ve sb2 adlarında iki Reference Type tanımladık. Daha sonra StringBuilder Class'ından türettiğim sb1 isimli nesnemin içerisine (Append Metodunu kullanarak) "Tamer " değerini ekledik ve sb1 isimli nesnemi sb2 nesnesine atadık. Atama işleminden sonra sb1 ve sb2 nesneleri Stack bölümünde aynı adresi kullandıkları için nesneler birbirlerine eşitlenirler.
StringBuilder sb1 = new StringBuilder();//RAM’de heap oluştur
StringBuilder sb2 = new StringBuilder();//RAM’de heap oluştur
sb1.Append("Tamer "); //sb1 e değer ata
sb2 = sb1; //sb1 değerini sb2 ye ata
MessageBox.Show("string 1=" + sb1.ToString());//sb1 oku
MessageBox.Show("string 2=" + sb2.ToString());//sb2 oku
sb1.Append("ŞAHİNER"); //sb1 değerine ekleme yap
MessageBox.Show("string 1=" + sb1.ToString());//sb1 oku
MessageBox.Show("string 2=" + sb2.ToString());//sb2 oku
Hiç yorum yok:
Yorum Gönder