9 Temmuz 2010 Cuma

out ile ref'i farkı

Bu iki komut da value type'ların bir methoda parametre olarak verilip, içerisinde değiştirilmesi halinde, yapılan değişikliklerin metod dışında da geçerli olmasını sağlar.

Bunların tek farkı; "out" anahtar kelimesi, betimlediği parametrenin fonksiyonda kullanılmadan önce initialize edilmesinin zorunlu olmamasıdır.

public void demo1(ref param1)
{
param1 = 5;
}
public void demo2(out param1)
{
param1 = 5;
}

demo2 metodu aşağıdaki şekilde kullanılabilirken,
...
int p2;
demo2(p2);

demo1 metodu şu şekilde kullanılmalıdır:
...
int p1 = 0;
demo1(p1);