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:
refvyžaduje, aby proměnná byla před předáním inicializována. Metoda může číst a měnit hodnotu.outnevyž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.