Sobes.tech
Junior — Middle

Aké sú rozdiely medzi kľúčovými slovami ref a out pri prenose referenčných premenných v metódach?

sobes.tech AI

Odpoveď od AI

V jazyku C# sa používajú kľúčové slová ref a out na odovzdanie parametrov odkazom, ale majú dôležité rozdiely:

  • ref vyžaduje, aby bola premenná inicializovaná pred odovzdaním do metódy. Metóda môže čítať a meniť hodnotu.
  • out nevyžaduje, aby bola premenná predtým inicializovaná, ale metóda jej musí priradiť hodnotu pred ukončením.

Príklad:

void ExampleRef(ref int x) {
    x += 10; // možno čítať a meniť
}

void ExampleOut(out int y) {
    y = 42; // povinné priradenie
}

int a = 5;
ExampleRef(ref a); // a musí byť inicializované

int b; // neinicializované
ExampleOut(out b); // metóda priradí hodnotu b

Takže, ref sa používa, keď je potrebné odovzdať a zmeniť existujúcu hodnotu, a out keď metóda má vrátiť viacero hodnôt cez parametre.