Herkese merhaba arkadaşlar Fuly ile C# öğreniyorum'un dörtüncü dersine hoş geldiniz. Bu dersimizde değişkenleri tanıyarak hangi alanlarla kullanıldıklarından bahsedeceğiz. Dilerseniz fazla uzatmadan dersimize başlayalım...
C Sharp Dilinde Temel Veri Türleri:
C# dili yazılımcılara veri saklayabilmeleri için bazı veri türlerini sunar. C# Dilinde veri türleri temel olarak iki çeşittir:


    [*]Önceden tanımlanmış olan veri türleri
    [*]Kullanıcı tarafından tanımlanmış veri türleri.

Gelin şimdi hep beraber bu veri türlerine bir göz atalım;
[COLOR=#38761d]Önceden Tanımlanmış Olan Veri Türleri[/COLOR]: C#'da Önceden tanımlanmış olan veri türleride kendi içlerinde ikiye ayrılmaktadırlar.
1-) Değer Tipi (Value Type)
2-) Referans Tipleri (Referance Type)
Bugün daha çok değer tipleri üzerine yoğunlaşacağız. Referans tiplerini objelere geldiğimiz zaman daha detaylı bir inceleme gerçekleştireceğiz. Değer tipleri ilk dersten hatırlayacağınız gibi ramin bellek alanında saklanmaktadırlar. C# oluşturulan tüm verileri altı alanda saklayabilmektedir.

1-) Stack Bölgesi: Bu bölge ram temsilcisidir. Bu veri tiplerine StackPointer yoluyla ulaşılabilir. Ulaşımı sağlamak için bölgenin başladığı alan, bittiği alan ve kapladığı alanı bilmek zorundasınız. Değer tipleri bu alanda saklanmaktadırlar. Bu alana değer ataması program derleyici tarafından çalıştırıldıktan sonra gerçekleşir.
2-) Heap Bölgesi: Bu bölgede ram temsilcisidir. Tüm C Sharp nesneleri bu alanda saklanır. Bu bölge sadece referans tiplerini saklamakla görevlidir. Heap bölgesine veri atamak için 'new' anahtar kelimesi kullanılır. Anahtarı (new) atanmış olan veriler çalışma zamanında oluşturulur.
3-) Register Bölgesi: Mikroişlemci ile beraber çalışan özel hafıza alanıdır. Bu işlemler neredeyse gözle görülemeyecek kadar hızlı gerçekleşir. Bu bölgeyi kullanmak üst düzey C# bilgisi gerektirir.
4-) Static Bölge: Bellekte bulunan rastgele bir alanı temsil eder. Static alanlarda tutulan bütün veriler program sonlanana kadar saklanır. Bir nesneyi Static bölgede saklamak için 'static' anahtarı kullanılır.
5-) Sabit Bölge: Adından da anlaşılacağı gibi program boyunca değeri hiç değişmeyen verilerdir. Sadece okuma amaçlıdır. Eğer bir değişken sabit bölgede saklanıyorsa daha sonra değerini değiştiremezsiniz. Sabit bölgeye veri 'const' anahtarı ile atanır.
6-) Ram Olmayan Bölge

[COLOR=#38761d]C#'Da Değişken Tanımlamak[/COLOR]

[COLOR=blue]byte [/COLOR]a; [COLOR=blue]byte [/COLOR]a = 40;
[COLOR=blue]double [/COLOR]b; veya [COLOR=blue]double [/COLOR]= 50;
a = 40;
b = 50;

Yukarıda ki örnekte 'a' değerine '40' ataması yapılmış ve 'b' döngüsüne '50' ataması yapılmış. İlk örnekte atama işlemini sonradan da yapabilir veya ikinci örnekte ki gibi atamaları tek satırda gerçekleştirebilirsiniz. Hemen bir örnek daha vererek konuyu pekiştirelim,

[COLOR=blue]byte [/COLOR]a = 40, b; veya [COLOR=blue]byte [/COLOR]a = 40, b = 60;
b = 50;



Eğer atanacak olan değerimiz önceden bilinmiyorsa '[COLOR=blue]byte [/COLOR]a,b;' şekinde bir döngü oluşturup değer atamasını daha sonrada yapabilirsiniz.

[COLOR=#38761d]Static Değişken Tanımlamak[/COLOR]: Bir değişkeni belleğin Static alanına kaydetmek istiyorsanız başına 'static' anahtarını eklemeniz gerekir. " [COLOR=blue]static byte[/COLOR] a=40; " gibi.
[COLOR=#38761d]Sabit Değiken Tanımlamak[/COLOR]: Oluşturulan değişkene atanan değerin daha sonradan değiştirilemez olmasını istiyorsanız 'const' anahtarını kullanmanız gerekir. " [COLOR=blue]const byte[/COLOR] a=15; " gibi.

kaynak