DEĞERLERİ VE BAŞVURULARI KULLANMAK
VERİ TÜRÜ DEĞİŞKENLER
Veri türü değişkenler,
tanımlandığında derleyici tarafından yeterli bellek alanı ayrılan ve değişkenin
saklayacağı değerin bu bellek alanında tutulduğu değişkenlerdir.
Null Değerler
Programlama
dilinde başvuru türü değişkenlere null değeri atanabilir. Bir değişkene null
değeri atandığında, bu o değişkenin bellekte hiçbir nesneye başvurulmadığı
anlamına gelir.
Boş Olabilen Türler
Null
değeri, başvuru türlerine başlangıç değeri vermek için kullanışlıdır. Fakat
null değerinin kendisi bir başvurudur ve bir değer türüne atanamaz. Bu nedenle
aşağıdaki ifade programlama dilinde geçerli bir ifade değildir.
int a = null; //
geçerli değil
Boş Olabilen Türlerin Özellikleri
Boş
olabilen türlerin sahip olduğu HasValue (değere sahip mi) özelliği boş olabilen
bir türün bir değere mi sahip olduğunu yoksa null mu olduğunu kontrol
edebilmesi sağlar.
BAŞVURU PARAMETRELERİ
Daha önce
yöntemlere parametre olarak bir değişken aktarıldığında parametrenin değişkenin
kopyasının oluşturulduğu biliniyor. Bu durum parametre değer türü (int gibi)
boş olabilen tür ya da başvuru türü bile böyledir. Bu da yöntem içerisinde
parametrenin değerinin değiştirilmesinin aktarılan değişkenin değerini etkilemeyeceği
anlamına gelir.
“ref” ve “out” Parametreleri
Programlama
dilinde yönteme aktarılan değişkenin kendi değerini değiştirmek için ise ref ve
out anahtar sözcükleri kullanılır.
“ref” Parametresi
Yöntem
bildiriminde kullanılan bir parametrenin adının önüne ref yazılırsa değişkenin
değeri değil, değişkenin yığındaki adresi parametre olarak gönderilmiş olunur.
Bu
yapıldığında artık parametrenin değerini değiştirmek, değişkenin değerini
değiştirmek anlamına gelir.
“out” Parametresi
Out
anahtar sözcüğü de aslında ref anahtar sözcüğüne benzer. Aralarındaki fark out
anahtar sözcüğünün değişkenlerin ilk değer verilmeden de parametre olarak
aktarılmasının mümkün kılmasıdır.
Yığın (Stack) ve Öbek (Heap)
Yazılan
programlar ve bu programların kullandığı veriler bellek üzerinde tutulur. Değer
ve başvuru türleri arasındaki farkları anlamak için verinin bellekte nasıl
düzenlendiğini iyi anlamak gerekir.
System.Object Sınıfı
Programlama
dili System.Object sınıfını object anahtar sözcüğüyle de kullanabilmeyi sağlar.
Başvuru türü olan herhangi bir değişkene başvuruda bulunan bir değişken oluşturmak
için System.Object sınıfı kullanılabilir.
BOXING VE UNBOXING
Kutulama (Boxing)
Object
türündeki değişkenler bir değer türüne de başvurabilir. Öğenin yığından öbeğe
otomatik kopyalanmasına kutulama (boxing) adı verilir.
Kutulamayı Kaldırma (UnBoxing)
Program
içerisinde bazen kutulanmış değerlerin değer türünde değişkenlere aktarılması
gerekir. Bu durumda kutulamayı kaldırmak zorunda olur.
Verileri Güvenli Olarak Dönüştürme
Derleyiciler her
ne kadar yapılan hatalar hemen bildirilerek işi kolaylaştırsalar da bazı
durumlarda derleyiciye yol göstermek gerekir. Dönüştürme işlem kullanılarak
derleyiciye bir nesne tarafından başvurulan verinin özel bir türe sahip olduğu
ve bu türü kullanarak nesneye başvurmanın güvenli olduğu belirtilir.
“is” İşleci
Değişken türünün istenilen türde olduğunu doğrulamak için kullanılır.
İs işleci iki işlenen alır. İs işlecinin sol tarına
doğrulamak istenilen değişkeni, sağ tarafına ise tür adı yazılır.
“as” İşleci
Değişken türünün hangi türde olduğunu
derleyiciye anlatmak için as işleci kullanılır. As işleci de iki işlenen alır.
as işleci nesneyi belirtilen türe dönüştürmeye çalışır. Başarılı
ise sonuç döndürülür. Dönüştürme başarılı değilse as işleci null sonucu verir.
Hiç yorum yok:
Yorum Gönder