C# Ref Return ve Local

C# ref anahtar sözcüğü, bir metodun bir değer yerine referans döndürmesine izin verir. Önceki C# sürümlerinde, bir metot yalnızca değer döndürebilirdi.

Local ref, döndürülen referansı tutan bir değişkendir.

Referans döndüren bir metodun aşağıda listelenen belirli kısıtlamaları vardır.

  • Metot void dönüş tipini kullanamaz.
  • Metot local değişkeni döndüremez.
  • Metot boş değer döndüremez.
  • Yöntem, bir sınıfın veya struct’ın constant, enumerator ve property sini döndüremez.

C# Ref Return Örneği

internal class Program
{
    private static void Main(string[] args)
    {
        string[] studentList = { "Fatih", "Burak", "Canan" };

        ref string student = ref FindStudent(studentList, "Burak");
        Console.WriteLine(student);
    }

    public static ref string FindStudent(string[] students, string studentName)
    {
        for (int i = 0; i < students.Length; i++)
        {
            if (students[i].Equals(studentName))
            {
                return ref students[i];
            }
        }
        throw new Exception("Öğrenci Bulunamadı");
    }
}

Sonuç:

Burak

C# Ref Local Örneği

Local ref, metot tarafından döndürülen referansı depolamak için kullanılan bir değişkendir. Bir örnek ile görelim.

    private static void Main(string[] args)
    {
        string[] Persons = { "Fatih", "Burak", "Canan", "Şenay" };
        Console.WriteLine("Dizi:["+ string.Join(',',Persons)+"]");

        //local referans oluşturuldu.
        ref string person = ref Persons[3]; 
        //Üçüncü index'teki dizi değeri değiştirildi.
        person = "Beyazıt";
        Console.WriteLine("Dizi:[" + string.Join(',', Persons) + "]");
    }

Sonuç:

Dizi:[Fatih,Burak,Canan,Şenay]
Dizi:[Fatih,Burak,Canan,Beyazıt]

Comments are closed.