C#’da veri tipleri temel olarak 2’ye ayrılırlar. Bunlar önceden tanımlanmış veri türleri ve kullanıcı tarafından tanımlanmış veri türleridir. Önceden tanımlanmış olan veri türleri de kendi arasında değer tipi (value type) ve referans tipi (reference type) olarak 2’ye ayrılır.
Veri bellekte aşağıdaki bölgelerden birinde tutulur:
Stack Bölgesi: Program içerisinde bir tamsayı türünden nesnenin çalışma zamanında yüklendiği yer RAM’ in stack bölgesidir. Tanımlı değişkenlerin tutulduğu bellek alanıdır. Derleyici tarafından değişkenlere yapılacak yer tahsisatı önceden bilinmelidir.
Heap Bölgesi: Bütün C# nesneleri bu bölgede oluşturulur. Stack’ten farklı olarak bu bölgede tahsisatı yapılacak nesnenin derleyici tarafından bilinmesi zorunlu değildir. Bu bölgede bir nesneye alan ayırmak için new anahtar sözcüğü kullanılır. new ile tahsis edilen alanlar dinamiktir. Çalışma zamanında tahsisat yapılır, derleme zamanında bir yer ayrılmaz. Stack’e göre daha yavaştır. ( Değer veri türleri Stack, Referans veri türleri Heap’ te tutulurlar.)
Register Bölgesi: Registerlar mikroişlemci üzerinde bulunan özel yapılardır Bu yapılarından dolayı diğer bölgelere göre veri transferi daha hızlı bir şekilde yapılabilmektedir.
Static Bölge: Bellekteki herhangi bir bölgeyi temsil eder. Static alanlarda tutulan veriler programın bütün çalışma süresince saklanır. Bir nesneye bu özelliği kazandırmak için static anahtar sözcüğü kullanılır.
Sabit Bölge: Program içerisinde, değerlerin değişmeden sürekli olarak aynı kaldığı bölümdür.
RAM Olmayan Bölge: Bellek bölgesini temsil etmeyen disk alanlarını temsil eder.
Değer ve Referans Tipleri
Değer tipleri değişkenin değerini direkt bellek bölgesinden alırlar. Referans tipleri ise başka bir nesneye referans olarak kullanılırlar. Diğer bir değişler referans tipleri, heap alanında yaratılan nesnelerin adreslerini saklarlar. Değer tipleri yaratıldıklarında stack bölgesinde oluşturulurlar. Referans tipleri ise kullanımı biraz daha sınırlı olan heap bellek bölgesinde saklanırlar.
Değer Tipleri (Value Types)
Değer tiplerinin tamamı Object denilen bir nesneden türemiştir. C#’da her nesne ya da veri tipi aslında Object tipidir. Değer tiplerinde bir nesnenin değeri direkt olarak saklıdır. 13 tane değer tipi değişken vardır. Object ve String değişkenleri referans tipi değişkenlerdir.
Referans Tipleri (Reference Types)
C# ‘ ta önceden tanımlı iki referans tipi vardır. Object ve String. Object türü C#’ta bütün türlerin türediği sınıftır. Diğer bir deyişle Object türünden bir nesneye herhangi bir veri türünden nesneyi atayabiliriz. Object türü özelleştirilerek farklı amaçlara yönelik kullanılabilirler.
String Türü
Referans türünden olan stringler, türü Unicode karakterlerden oluşan bir dizi gibi algılanmalıdır. Özel anlamlar içeren karakterleri ifade etmek için ifadesini kullanırız (escape).
Örn: String path=“C:\WINDOWS\assembly” String içinde görünen ifadenin aynısını belirtmek için string ifadesinin önüne @ işareti konulur. Örn: String path=@“C:WINDOWSassembly”
Stringleri arka arkaya eklemek için + operatörü kullanılır.
Strings1=“Merhaba”;
Strings2=“.NET”;
Strings3=s1+s2;
Strings1=“Merhaba”;
Strings2=“.NET”;
Strings3=s1+s2;
Object Veri Türü
Her nesne object türünden olduğu için bütün değerler ve nesneler object türünden bir değişkene atanabilir.
Bir yanıt yazın