28 Kasım 2010 Pazar

Ref ve Out Anahtar Sozcukleri

C#'ta pek sık kullanılmayan ama gerektigi zaman da hayat kurtarabilecek oneme sahip anahtar sozcukleridir. Kisaca ne ise yaradiklarini ve nasil kullanildiklarini anlatmaya calisacagim.

ref: Metotlara deger yerine referansini parametre gecmek icin kullanilir.

public int Test(ref int p)
{
return p=5;
}

int a=3;
int a=Test(ref p);

ile a'yi 5 elde ederiz.

out: ref ile ayni kullanima sahiptir.

public int Test(out int p)
{
return p=5;
}

int a=3;
int a=Test(out p);

Aralarindaki tek fark, out ile parametrede sadece yazma islemi kullanabilirken, ref ile hem yazma hem okuma secenegine sahip oluruz. Yani;

public int Test(out int p)
{
p=p+5; // burada hata verecektir. okuma islemi yapilamaz
return p;
}

public int Test2(ref int p)
{
p=p+5; //burada hata vermeyecektir, cunku ref anahtar sozcugu bize okuma imkani da taniyacaktir
return p;
}

0 yorum: