Selamlar ;
immutable olmasıyla alakalı bir durum.
Dediğiniz gibi heap de her string istemi için aslında new String() ; gibi bir durum söz konusu oluyor ve bu null olabildiği içinde referans type kategorsinde yer alıyor.
Ana 2 grup var , value types ve reference types.
Eralp
Date: Wed, 21 Nov 2007 12:07:06 +0200
From: deniz.dizman_at_gmail.com
To: linux-programlama_at_liste.linux.org.tr
Subject: [Linux-programlama] Re: C# referans tipleri
yanilmiyorsam java da oldugu gibi c sharpta da stringler "immutable", yani bir string objesine yapilan her atamada bellekte yeni bir obje olusturuluyor. Sizin yaptiginizinla memory durum soyle oluyor:
string a = "test"; dediginizde diyelim ki a degisikeni icin 0100 adresine "test" degeri ataniyor ve a 0100 u gosteriyor
string b = a; dediginizde b de 0100 u gosteriyot
a = "deneme"; dediginiz zaman 0110 a test yaziliyor ve a degiskeni 0110 u gosteriyor.
b yuzden nin degeri degismiyor.
aslinda a = "deneme" su demek: a = new String("deneme"); (java icin)
On Nov 19, 2007 11:14 PM, Neşet ÖZKAN <nozkan_at_gmail.com> wrote:
Merhaba;
Anladığım kadarı ile C# ta iki adet yerleşik referans veri tipi var,
string
object
Eğer ben yanlış anlamadıysam okuduğum kitaba göre referans veri
tiplerini birbirine eşitlediğimizde
değerleri değil heap bölgesindeki adreslerini eşitlemiş oluyoruz yani;
string a="test"
string b=a
dediğimde b değişkeninin heap bölgesindeki adresi a değişkeninin adresi
ile aynımı oluyor.
eğer böyleyse ki referans tiplerinde böyle olması gerekiyor gibi
görünüyor(muhtemelen ben bir şeyi atlıyorum yada yanlış anlıyorum)
Bu durumda a değerinde bir değişikli yaptığımda b değerinin de otomatik
olarak bu değişiklikten etkilenmesi gerekmiyormu ?
Benim denemelerimde etkilenmiyor gibi görünüyor.
Yani;
string a="test"
string b=a
a="deneme"
dediğimde
b nin değerinin de "deneme" olması gerekmiyormu?
Biri bana neyi yanlış anladığımı yada anlayamadığımı söyleyebilirse
sevinirim.
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
-- dendiz http://dendiz.blogspot.com _________________________________________________________________ Connect and share in new ways with Windows Live. http://www.windowslive.com/connect.html?ocid=TXT_TAGLM_Wave2_newways_112007
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Wed 21 Nov 2007 - 14:46:40 EET