[Linux-programlama] Re: C# referans tipleri

---------

[Linux-programlama] Re: C# referans tipleri

From: eralp erat <eralp_erat_at_hotmail.com>
Date: Wed, 21 Nov 2007 13:20:16 +0000
Message-ID: <BLU111-W300166CCC73BA1EA3AA1C0F8780@phx.gbl>

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

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.