C#

C# Metot Passing Arguments

Yazar - UĞUR

Passing Arguments

Metot çağrıldığında argümanları bir metoda geçirmenin üç yolu vardır: Değer olarak, referans olarak ve Çıktı olarak.

Değer olarak, argümanın değerini metodun biçimsel parametresine kopyalar. Burada, argüman üzerinde herhangi bir etki yaratmadan, metot içindeki parametre üzerinde değişiklikler yapabiliriz.

Varsayılan olarak, C # argümanları geçirmek için değer çağırma yöntemini kullanır.( Şimdiye kadarki örneklerde yaptığımız gibi.)

Aşağıdaki örnek değer olarak atama yöntemini göstermektedir:

static void Sqr(int x)
{
 x = x * x;
}
static void Main()
{
 int a = 3;
 Sqr(a);

 Console.WriteLine(a); // Outputs 3
}

Bu durumda x, Sqr metodunun parametresidir ve a, metoda geçirilen asıl argümandır.

Gördüğünüz gibi, Sqr metodu değerle işlem yaptığı için değişkenin orijinal değerini değiştirmez, yani gerçek değişken değil değer üzerinde çalışır.

Passing by Reference (Referans Olarak)

Referansa göre geçirmek, argümanın bellek adresini biçimsel parametreye kopyalar. Metodun içinde, adres, çağrıda kullanılan gerçek argümana erişmek için kullanılır. Bu, parametrede yapılan değişiklikler argümanı etkiler.
Değeri referansa göre geçirmek için, ref anahtar kelimesi hem metodu çağırırken hem de metodu tanımlarken kullanılır:

static void Sqr(ref int x)
{
 x = x * x;
}
static void Main()
{
 int a = 3;
 Sqr(ref a);

 Console.WriteLine(a); // Outputs 9
}

Ref anahtar kelimesi, metodun gerçek değişkende çalışmasına izin veren metot parametresine bellek adresini iletir.

Ref anahtar kelimesi, metodu tanımlarken ve çağırırken kullanılır.

Passing by Output (Çıktı olarak)

Çıktı parametreleri, verileri kabul etmeden metot dışına veri aktarmaları dışında referans parametrelerine benzer. Out anahtar sözcüğünü kullanarak tanımlanır.
Çıktı parametresi için sağlanan değişken, bu değer kullanılmayacağı için başlatılamaz. Çıktı parametreleri, bir metottan birden çok değer döndürmeniz gerektiğinde özellikle yararlıdır.
Örneğin:

static void GetValues(out int x, out int y)
{
 x = 5;
 y = 42;
}
static void Main(string[] args)
{
 int a, b;
 GetValues(out a, out b);
 //Now a equals 5, b equals 42
}

Önceki referans tipi örneğinin aksine, 3 değerinin değeri 9’a değiştirilen metotla ilişkili olduğu çıktı parametreleri değerini metottan alır (yukarıdaki örnekte 5 ve 42).

Ref anahtar kelimesine benzer şekilde, out anahtar kelimesi de yöntemi tanımlarken ve çağırırken kullanılır.

Yorum Yap

This site uses Akismet to reduce spam. Learn how your comment data is processed.