Sobes.tech
Junior — Middle

Jaké jsou rozdíly mezi klíčovými slovy ref a out při předávání referenčních proměnných v metodách?

sobes.tech AI

Odpověď od AI

V jazyce C# se klíčová slova ref a out používají k předávání parametrů odkazem, ale mají důležité rozdíly:

  • ref vyžaduje, aby proměnná byla před předáním inicializována. Metoda může číst a měnit hodnotu.
  • out nevyžaduje předchozí inicializaci proměnné, ale metoda jí musí při ukončení přiřadit hodnotu.

Příklad:

void ExampleRef(ref int x) {
    x += 10; // lze číst a měnit
}

void ExampleOut(out int y) {
    y = 42; // nutné přiřadit
}

int a = 5;
ExampleRef(ref a); // a musí být inicializováno

int b; // neinicializováno
ExampleOut(out b); // metoda přiřadí hodnotu b

Tedy, ref se používá, když je potřeba předat a změnit již existující hodnotu, a out když metoda má vrátit více hodnot přes parametry.