C#

C# ref ve out Parametreleri Kullanımı

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda ref ve out parametrelerinin kullanımını anlatacağım. Hadi başlayalım !

C# dilinde “ref” ve “out” anahtar kelimeleri, bir metot çağrısında değişkenlerin nasıl iletilmesi gerektiğini belirlemek için kullanılır. “ref” ve “out” anahtar kelimeleri, değişkenleri değer veya referans olarak iletmek için kullanılır. Ancak, “ref” ve “out” anahtar kelimeleri arasında bazı farklılıklar vardır.

ref Anahtar Kelimesi

“ref” anahtar kelimesi, bir değişkenin bellekteki adresinin (yani referansının) metoda aktarılmasını sağlar. Bu, değişkenin metot içinde değiştirilebileceği ve bu değişikliklerin metottan sonra bile kalıcı olacağı anlamına gelir. Bu nedenle, “ref” anahtar kelimesi, çağrılan metotun, değişkenin değerini dışarıya aktarmasına izin verir.

“ref” anahtar kelimesi ile bir metot çağrısı şu şekildedir:

void MyMethod(ref int x)
{
   // x değişkeni burada kullanılabilir ve değiştirilebilir.
}

int y = 10;
MyMethod(ref y);

Yukarıdaki örnekte, “MyMethod” adlı bir metot tanımlıyoruz ve “x” adlı bir “int” değişkeni “ref” anahtar kelimesiyle tanımlanıyor. Daha sonra, “y” adlı bir “int” değişkeni tanımlıyoruz ve “MyMethod” metotunu çağırırken, “y” değişkenini “ref” anahtar kelimesiyle gönderiyoruz.

Metot çağrısı sırasında “ref” anahtar kelimesinin kullanımı, “y” değişkeninin değerinin değişebileceği anlamına gelir. “MyMethod” içinde “x” değişkeninin değeri değiştirildiğinde, “y” değişkeninin değeri değişecektir.

out Anahtar Kelimesi

“out” anahtar kelimesi de bir değişkenin bellekteki adresinin metoda aktarılmasını sağlar. Ancak, “out” anahtar kelimesinin “ref” anahtar kelimesinden farkı, “out” anahtar kelimesiyle tanımlanan değişkenlerin, metot içinde ilk değer atanması gerektiğidir. Bu nedenle, “out” anahtar kelimesi, çağrılan metotun, değişkenin değerini dışarıya aktarmasına ve aynı zamanda değişkenin ilk değerinin atanmasına izin verir.

“out” anahtar kelimesi ile bir metot çağrısı şöyledir:

void MyMethod(out int x)
{
   // x değişkeni burada kullanılabilir ve değeri atanabilir.
   x = 10;
}

int y;
MyMethod(out y);

Yukarıdaki örnekte, “MyMethod” adlı bir metot tanımlıyoruz ve “x” adlı bir “int” değişkeni “out” anahtar kelimesiyle tanımlanıyor. Daha sonra, “y” adlı bir “int” değişkeni tanımlıyoruz ve “MyMethod” metotunu çağırırken, “y” değişkenini “out” anahtar kelimesiyle gönderiyoruz.

Metot çağrısı sırasında, “out” anahtar kelimesinin kullanımı, “x” değişkeninin değerinin atanacağı ve “y” değişkeninin de “10” değerine atanacağı anlamına gelir.

ref ve out Anahtar Kelimelerinin Kullanımı

“ref” ve “out” anahtar kelimeleri, özellikle büyük projelerde, kodun daha anlaşılır ve düzenlenebilir olmasına yardımcı olabilir. Ayrıca, bellek kullanımını azaltmak için bu anahtar kelimelerinin kullanılması da önerilir.

Aşağıda, birkaç örnek kod verilmiştir:

Örnek 1: ref anahtar kelimesi kullanımı

void Swap(ref int x, ref int y)
{
   int temp = x;
   x = y;
   y = temp;
}

int a = 10;
int b = 20;

Console.WriteLine("a = {0}, b = {1}", a, b);
Swap(ref a, ref b);
Console.WriteLine("a = {0}, b = {1}", a, b);

Yukarıdaki kodda, “Swap” adlı bir metot tanımlanıyor ve “ref” anahtar kelimesi ile “x” ve “y” adlı iki “int” değişkeni tanımlanıyor. Daha sonra, “a” ve “b” adlı iki “int” değişkeni tanımlanıyor ve “Swap” metodu çağrılırken “ref” anahtar kelimesiyle gönderiliyorlar.

Metot çağrısı sırasında, “Swap” metodu, “a” ve “b” değişkenlerinin referanslarını alır ve değerlerini değiştirir. Bu nedenle, “a” değişkeninin değeri “20” ve “b” değişkeninin değeri “10” olacaktır.

Örnek 2: out anahtar kelimesi kullanımı

void Divide(int dividend, int divisor, out int quotient, out int remainder)
{
   quotient = dividend / divisor;
   remainder = dividend % divisor;
}

int a = 20;
int b = 3;
int result1, result2;

Divide(a, b, out result1, out result2);

Console.WriteLine("a = {0}, b = {1}", a, b);
Console.WriteLine("result1 = {0}, result2 = {1}", result1, result2);

out Parametreleri

OUT parametreleri, bir metoda girdi olarak gönderilen bir değişkenin yanı sıra, aynı zamanda metodun tamamlanmasından sonra bir değer döndürür. Bu, metot dışındaki kodun, metot tarafından hesaplanan değere erişmesine izin verir. Genellikle, bir metot, birden fazla değer döndürmek istediğinde kullanışlıdır.

OUT anahtar kelimesi, metodun tanımında ve çağrısında kullanılır. OUT anahtar kelimesi, metodun içinde kullanılan parametreleri belirtir. Aşağıda OUT anahtar kelimesi ile kullanılan bir örnek görülmektedir.

class Program {
    static void Main(string[] args) {
        int sayi1 = 20, sayi2 = 10;
        int sonuc = 0;
        carp(sayi1, sayi2, out sonuc);
        Console.WriteLine("{0} * {1} = {2}", sayi1, sayi2, sonuc);
        Console.ReadLine();
    }
    static void carp(int x, int y, out int z) {
        z = x * y;
    }
}

Yukarıdaki örnekte, “carp” adlı bir metot tanımlanmaktadır. Bu metot, “x” ve “y” adında iki girdi parametresi ve “z” adında bir çıktı parametresi almaktadır. “out” anahtar kelimesi, “z” parametresinin bir çıktı parametresi olduğunu belirtir. Metot içinde, “z” parametresi, “x” ve “y” parametrelerinin çarpımı ile hesaplanır. Ardından, hesaplanan değer, “Main” metodu içindeki “sonuc” değişkenine atanır.

Sonuç olarak, “Main” metodu, “carp” metodunu çağırır ve “sonuc” değişkenini OUT parametresi olarak gönderir. Metodun tamamlanmasından sonra, “sonuc” değişkeni “Main” metodunda yazdırılır.

ref ve out Anahtar Kelimelerinin Farkları

REF ve OUT anahtar kelimeleri, benzer bir işlevi yerine getirirler. Ancak, bazı temel farklılıkları vardır.

REF anahtar kelimesi, bir değişkenin değerini metot içinde değiştirirken, OUT anahtar kelimesi, metot dışındaki kodda yeni bir değişken değeri oluşturur. Başka bir deyişle, REF anahtar kelimesi, metot içindeki bir değişkenin değerini değiştirirken, OUT anahtar kelimesi, metot dışındaki kodun yeni bir değişken değeri oluşturmasına izin verir.

Sonuç

Bu makalede, C#’taki ref ve out anahtar kelimelerinin nasıl kullanıldığını öğrendik. Bu anahtar kelimeler sayesinde, işlevlerin parametreleri üzerinde daha fazla kontrol sağlanabilir ve bu sayede kodunuz daha esnek ve okunaklı hale gelir. Ancak, bu anahtar kelimelerin kullanımı, kodunuzda yanlış kullanıldığında sorunlara neden olabilir. Bu nedenle, her zaman doğru şekilde kullanmaya özen gösterin.

Evet C#’ta ref ve out anahtar kelimelerinin kullanımı bu şekilde olmakta. Tüm C# yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu