Sobes.tech
Junior — Middle

Welche Unterschiede bestehen zwischen den Schlüsselwörtern ref und out beim Übergeben von Referenzvariablen in Methoden?

sobes.tech KI

Antwort von AI

In C# werden die Schlüsselwörter ref und out verwendet, um Parameter per Referenz zu übergeben, unterscheiden sich jedoch wesentlich:

  • ref erfordert, dass die Variable vor der Übergabe initialisiert wird. Die Methode kann den Wert lesen und ändern.
  • out erfordert keine vorherige Initialisierung der Variablen, aber die Methode muss ihr vor dem Verlassen einen Wert zuweisen.

Beispiel:

void ExampleRef(ref int x) {
    x += 10; // kann gelesen und geändert werden
}

void ExampleOut(out int y) {
    y = 42; // muss zugewiesen werden
}

int a = 5;
ExampleRef(ref a); // a muss initialisiert sein

int b; // nicht initialisiert
ExampleOut(out b); // Methode weist b einen Wert zu

Daher wird ref verwendet, wenn ein bestehender Wert übergeben und geändert werden soll, und out, wenn die Methode mehrere Werte über Parameter zurückgeben soll.