Yazılım Mimarileri ve Tasarım Desenleri Üzerine

C#-var ve object Değişkenleri

Bu yazımızda var ve object değişkenlerinin kullanım ve yapısından bahsedeceğiz.Diğer değişkenlerle arasındaki farktan ziyade bu iki değişken arasındaki farkı anlamak daha önemli.

var tipi değişken;
var tipi değişken tanımlarsanız eğer değişkenin tipini siz değil derleyici tanımlayacaktır.Derleyicinin tanımladığı tipe göre o veri RAM üzerin de o tiple saklanacaktır.
Not:var değişken tipi,diller arası,databaseler arası entegrasyonu sağlarken veri tipleri uyuşmazlığını gidermek için oluşturulmuş bir tiptir.Yani C#’ta int ile tanımlanan bir değişken Delphi ‘de başka türlü tanımlanabilir.var değişken tipide bütün dillerde evrensellik özelliği taşımaktadır.Sizlere tavsiyem normal kodlamada verinizin tipine göre normal değişken tanımlayınız.

var a = 10.6; //a değişkeninin tipi double dır.
var b = 20; //b değişkeninin tipi int dir.
var c = "asd"; //c değişkeninin tipi string dir.
var d = true; //d değişkeninin tipi booldur.

object tipi değişkenler
object olarak tanımlanan değişken her tipteki veriyi içinde saklayablir.Fakat object tipteki değişkene atanan değer Boxing(Kutulama) işlemine uğrar.Yani,object tipiyle oluşturduğumuz bir string değişken,RAM’e string olarak değilde object olarak kaydedilir.Tanımlanan object değişkeni kullanmak istediğimiz de,içinde saklanan verinin tipini elde ederek kullanmalıyız.Bunun içinde Unboxing(Kutudan Çıkarma) işlemi yapılır.Bu işlem sonucunda object içindeki asıl tipini almış oluruz.

object o1 = "ali";
object o2 = 12.5f;
object o3 = 'c';
object o4 = true;

Yukarıda object tipiyle oluşturulan değişkenler bulunmaktadır.Bu değişkenlere verilen değerlerin hiç biri RAM’e tipine göre isimlendirilerek kaydedilmemiştir.object olarak kaydedilmiştir.İşte bu işleme Boxing(Kutulama) denir.

object b=10; //Boxing

Üstte b adında object tipli bir değişken oluşturduk.Bu oluşturduğumuz değişkeni Unboxing yapmak için aşağıdaki işlemi yapmamız gerekiyor.


int a = (int)b; //Unboxing

Başka bir örnek;

object ahmet1 = "ahmet";//Boxing
string ahmet2 = (string)ahmet1;//Unboxing

Son olarak object tipli değişkenler de,değişkenin içinde ki verinin tipini dinamik olarak öğrenmek istiyorsak aşağıdaki metod işimizi görecektir.

object dd=TİPİBİLİNMEYENBİRDEĞER;
dd.GetType();/*Bu metod sayesinde
 dd isimli object değişkeninin
 içinde sakladığı değişkenin tipini
 öğrenebiliriz.*/
 

İyi çalışmalar…

Mobil sürümden çık