Was bedeutet out in C#?

2 Antworten

Bei so was sollte man als Entwickler eigentlich in der Lage sein selber in die Doku zu schauen, falls du da etwas nicht versteht kann man natürlich immer noch nachfragen.

https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/out

In der Regel wird es genutzt um Parameter zu kennzeichnen, es signalisiert, dass die Funktion die Referenz zu der variable bekommt und diese auf einen neuen Wert setzt. Ähnlich zu ref, aber es muss ein neuer Wert gesetzt werden. Eventuell ist es einfacher zu verstehen wenn man sich erst mal das ref keyword anschaut.

Woher ich das weiß:Berufserfahrung – Software Entwickler / Devops

burnoutmaker1 
Beitragsersteller
 14.10.2024, 15:40

Ich hab bereits in der Doku nachgeschaut gehabt, hatte aber nicht verstanden was dort geschrieben ist

BeamerBen  14.10.2024, 15:43
@burnoutmaker1

Was ist denn das genaue Problem, versteht du nicht wie man das nutzt, wann man das nutzt, irgendein Wort auf das sich die Doku bezieht nicht?

Oder hast Du es über die Antworten hier jetzt gelernt?

burnoutmaker1 
Beitragsersteller
 14.10.2024, 15:46
@BeamerBen

ich glaube ich muss mir allgemein einige dinge noch mal anschauen um das zu verstehen

hab auch vergessen was rückgabewerte sind

BeamerBen  14.10.2024, 15:51
@burnoutmaker1

Parameter sind die Werte, die du an eine Funktion übergibst. Also das zwischen den runden Klammern ().

Rückgabewerte sind das was du in einer Funktion mit Return zurück gibst.

Keine Sorge, out und ref Sind erst mal nicht so wichtig und am Anfang vermutlich in vielen Situationen eher ein anti pattern, also ein schlechter Ansatz. Daher nicht so schlimm wenn du das nicht sofort verstehst. Out bei generics ist noch mehr niche.

out sorgt dafür, dass Methodenparameter nach dem Aufruf ebenfalls zurückgegeben werden. Man kann diese Parameter Variablen zuweisen und hat somit einen ähnlichen Effekt wie eine Methode mit mehreren Rückgabewerten.

public void Calculate(int a, int b, out int sum, out int product)
{
    sum = a + b;
    product = a * b;
}

Hier wie man es verwendet:

int sum, product
Calculate(5, 3, out sum, out product);
Console.WriteLine($"Sum: {sum}, Product: {product}");
Woher ich das weiß:Berufserfahrung – Berufserfahrung