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.