Middle
C# dilində referans tiplər üçün niyə ref və out açar sözləri daxil edildi?
sobes.tech Süni İntellekt
AI-dan cavab
Referens tipləri referans vasitəsilə ötürülür (referansın nüsxəsi ötürülür), ref və ya out istifadə etməklə obyektə olan referansı özü referans vasitəsilə ötürmək mümkündür.
Bu aşağıdakı hallarda faydalı ola bilər:
- Obyektin nümunəsinin dəyişdirilməsi: metodun obyekt nümunəsinə istinad edən dəyişəni dəyişməsinə və ona yeni nümunə təyin etməsinə imkan verir.
TryParsemetodlarının həyata keçirilməsi: metodboolqaytarır, bu da parsinqin uğurlu olub-olmadığını göstərir və nəticəoutarqumentinə yazılır.outolmadan, uğursuzluqda istisna atmaq və ya tuple qaytarmaq lazım gələrdi.- Effektivlik (nadir hallarda, amma mümkündür): bəzi ekstremal hallarda, obyekt çox böyükdür və onu tez-tez dəyişdirmək lazımdırsa, referans vasitəsilə ötürmə (
ref) yeni obyektin qaytarılmasından (bu nadir hallarda olur) bir qədər daha effektiv ola bilər.
ref istifadə edərək nümunəni dəyişdirmə nümunəsi:
public class MyClass
{
public int Value { get; set; }
}
public void ReplaceObject(ref MyClass obj)
{
obj = new MyClass { Value = 10 }; // obyektin referansını dəyişir
}
// ... başqa yerdə
MyClass instance = new MyClass { Value = 5 };
ReplaceObject(ref instance);
// İndi instance yeni obyektə referans edir və Value = 10
out istifadə nümunəsi:
public bool TryParseInt(string s, out int result)
{
// Parsinq loqikası
if (int.TryParse(s, out result))
{
return true;
}
result = 0; // Uğursuzluqda standart dəyər təyin edir
return false;
}
// ... başqa yerdə
int parsedValue;
if (TryParseInt("123", out parsedValue))
{
// Uğurlu parsinq
}