Sobes.tech
Junior — Middle

Metodlarda istinad dəyişənlərini ötürərkən ref və out açar sözləri arasında nə fərq var?

sobes.tech Süni İntellekt

AI-dan cavab

C# dilində, refout açar sözləri parametrləri referans vasitəsilə keçirmək üçün istifadə olunur, lakin onlar vacib fərqlərə malikdir:

  • ref dəyişənin metodə göndərilməzdən əvvəl ilkinləşdirilməsini tələb edir. Metod dəyəri oxuya və dəyişə bilər.
  • out dəyişənin əvvəlcədən ilkinləşdirilməsini tələb etmir, lakin metod onun dəyərini çıxışdan əvvəl təyin etməlidir.

Nümunə:

void ExampleRef(ref int x) {
    x += 10; // oxumaq və dəyişmək mümkündür
}

void ExampleOut(out int y) {
    y = 42; // məcburidir təyin etmək
}

int a = 5;
ExampleRef(ref a); // a ilkinləşdirilməlidir

int b; // ilkinləşdirilməyib
ExampleOut(out b); // metod b-yə dəyər təyin edir

Beləliklə, ref mövcud dəyəri keçirmək və dəyişdirmək üçün istifadə olunur, out isə metodun çoxsaylı dəyərləri parametrlər vasitəsilə geri qaytarması üçün istifadə olunur.