Bir metodu void olarak kullanmamıza rağmen metod içindeki bir veya birden fazla değer almak istiyorsak, out veya ref parametresini kullanabiliriz. ref parametresi dediğim, call-by-referance anlamına geliyor. out parametresi de bu parametreye oldukça benziyor.
Ancak ref ve out parametresi arasında farklar var. Şöyle ki :
- out parametresi ile gönderilen bir değişkenin değeri metodun içinde kullanılamaz
- metod içinde yeni bir değişken yaratılır, fonksiyon sonlanırken referansi metoda gönderilen değişkeninkine atanır
- metoda out parametresiyle gönderilen bir değişkene ilk değer atanması zorunlu değildir
Hız? Bellek?
Tıpkı referans ile veri göndermede olduğu gibi, out parametresiyle gönderilen veri de bellek kullanımını azaltıyor. Ayrıca verinin kopyalanması sırasında harcanan süreden de kurtulmuş oluyoruz. Yani, hem hızlı hem de az bellek kullanımını sağlıyor diyebiliriz.
Örnek :