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:
referfordert, dass die Variable vor der Übergabe initialisiert wird. Die Methode kann den Wert lesen und ändern.outerfordert 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.