16 Ocak 2014 Perşembe

Değerleri ve Başvuruları Kullanmak

                               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