ref
ref parametre niteleyicisi C# ın metodlara parametre gönderirken değerle çağırma yerine referansla çağırmasını sağlar yani parametrenin adresini metoda / fonksiyona gönderir.
// ref parametresi ile argüman alan metodun örnek prototipi:
public void sqrt (ref int a){
// ref parametresi ile argüman alan fonsiyonu çağırma:
nesne_adı.sqrt(ref a);
ref olarak aktarılan bir argümana çağrıdan önce bir değer atanmalıdır. ref kullanarak bir argümana , ilk değer atamak için bir metot kullanmak mümkün değildir.
out
Bir metoda değer aktarmak yerine metotdan değer almak için kullanılır. out parametresi olarak kullanılan değişkene metodu çağırmadan önce ilk değer vermek gerekli / kullanışlı değildir. Bunun sebebi ilk değerin metotdan talep edilmesidir, metodun zaten vereceği değeri vermek zaman kaybı olur.
Örnek olarak aldığı değerin 4 katını ‘buyut’ değişkenine aktaran ve döndüren bir metodun prototipini yazalım:
public void genislet ( int n, out int buyut){
buyut = n*4;
}
// metodun çağrılması
nesne_adı.genislet(int n, out int buyut);
Örnekte görüldüğü gibi ilk değeri olmayan buyut değişkenine içerde zaten atama yapılmaktadır, bundan dolayı ilk değer atanmaz.