Abdurrahman Işık some development practices

Değer Tip vs. Referans Tip

C# dilinde değişkenler Değer Tip(Value Type) ve Referans Tip(Reference Type) ikiye ayrılır, bunlardan özellikleriyle bahsedelim;

Değer Tipleri:

  • Verilerini doğrudan kendi üzerinde saklarlar.
  • Her bir değişken, verisinin bir kopyasını taşır.
  • Bir değişken üzerinde yapılan değişiklik diğerini etkilemez.
  • Veri, belleğin stack bölgesinde tutulur.
  • Tanımlamak veri tipi ve değişken adı yeterlidir.
  • Null (boş) değer alamazlar.

Referans Tipleri:

  • Verilerinin adreslerini (referanslarını) saklarlar.
  • İki referans değişkeni aynı veriyi işaret edebilir.
  • İki değişkenin birbirine eşitlenmesi sonrası, bir değişken üzerinde yapılan değişiklik diğerini etkileyebilir.
  • Veri belleğin Heap bölgesinde tutulurken; verinin heap bölgesindeki adresini tutan değişken stack bölgesinde tutulur.
  • Değer tiplerine ek olarak “new” anahtar kelimesiyle oluştururlurlar.
  • Null değer alabilirler. Referans değişkeninin ‘null’ değer alması, işaret edeceği bir nesnenin olmaması anlamına gelir.

Aşağıdaki şekilde C# tipleri ve alacağı maximum ve minimum değerleri verilmiştir. Toplam olarak 15 veri tipi vardır bunlardan 13’ü değer 2’si referans tiplidir.

Değer Tipleri

C# Adı CTS Karşılığı Açıklama Max ve Min aralık yada değeri
sbyte System.Byte 8 bit işaretli tamsayı -128 : 127
short System.Int16 16 bit işaretli tamsayı -32.768 : 32.767
int System.Int32 32 bit işaretli tamsayı -2.147.483.648 : 2.147.483.647
long System.Int64 64 bit işaretli tamsayı -9.223.372.036.854.775.808 : -9.223.372.036.854.775.807
byte System.Byte 8 bit işaretsiz tamsayı 0,177083333
ushort System.UInt16 16 bit işaretsiz tamsayı 0 : 65.535
uint System.UInt32 32 bit işaretsiz tamsayı 0 : 4.294.967.295
ulong System.UInt64 64 bit işaretsiz tamsayı 0 : 18.446.744.073.709.551.615
float System.Single 32 bit tek kayan sayı +yada - 1,5*10-45 : + ya da - 3,4*1038
double Sytem.Double 64 bit çift kayan sayı +yada - 5*10-324 : + ya da - 1,7*10308
decimal System.Decimal 128 bit ondalıklı sayı +yada - 1,5*10-28 : + ya da - 7,9*1028
bool System.Boolean true ya da false
char System.Char Karakterleri temsil eder 16 Unicode karakterleri

Referans Tipleri

C# Adı CTS Karşılığı Açıklama
object System.Object Bütün veri türlerinin türediği kök eleman
string System.String Unicode karakterlerinden oluşan string

Aşağıda örnek olarak Int ve Double değişkenlerinin min. ve max değerlerini inceledik..

Console.WriteLine("Int degiskenin Min Degeri :" + int.MinValue.ToString());
Console.WriteLine("Int degiskenin Max Degeri :" + int.MaxValue.ToString());
Console.WriteLine("Double degiskenin Min Degeri :" + double.MinValue.ToString());
Console.WriteLine("Double degiskenin Max Degeri :" + double.MaxValue.ToString());