This article has been localized into German by the community.
Funktionen
Eine Funktion ermöglicht es Ihnen, ein Teil des Codes zu entkapseln und von einem anderen Teil aus aufzurufen. Sie werden bald in eine Situation kommen, in der Sie ein Stück des Codes von verschiedenen Teilen aus wiederholen müssen und da kommen die Funktionen ins Spiel. In C# werden sie so aufgebaut:
<visibility> <return type> <name>(<parameters>)
{
<function code>
}
Um eine Funktion aufzurufen, müssen Sie nur ihren Namen schreiben, eine Klammer auf machen, Parameter mitgeben (falls es welche gibt), dann die Klammer wieder zu wie hier:
DoStuff();
Hier ist ein Beispiel für unsere DoStuff() Funktion:
public void DoStuff()
{
Console.WriteLine("I'm doing something...");
}
Der erste Part "public" ist die Sichtbarkeit, sie ist Optional. Falls nichts angegeben wird ist die Funktion privat. Mehr darüber später noch. Das nächste ist der Typ der zurückgegeben werden soll. Es kann jeder beliebige Typ in C# sein, oder wie wir im Beispiel hier, void. Void ist ein Typ der gar nichts zurückgibt. Somit benötigt diese Funktion keine Parameter, wie man im Bereich der leeren Klammern erkennen kann, so ist das ganze aber langweilig. Lass uns das ändern:
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
return result;
}
Wir haben fast alles geändert. Die Funktion gibt nun einen Integerwert zurück, sie benötigt 2 Parameter (beide Integer), und anstatt irgendetwas zurückzugeben, macht sie eine Kalkulation und gibt das Ergebnis zurück. Das bedeutet das wir zwei Zahlen von verschiedenen Teilen unseres Codes hinzufügen können, wenn wir diese Funktion aufrufen, anstatt immer die ganze Kalkulation eingeben zu müssen. Während wir hier nicht wirklich viel Zeit in diesem kleinen Beispiel einsparen, werden Sie die Funktionen lieben lernen, je mehr Sie mit C# arbeiten. Die Funktion wird wie folgt aufgerufen:
int result = AddNumbers(10, 5);
Console.WriteLine(result);
Wie erwähnt gibt diese Funktion etwas zurück, das muss sie auch, weil wir gesagt haben das C# etwas zurückgeben muss. Wenn wir etwas anderes als den Typ void als Rückgabewert deklarieren, zwingen wir uns selbst dazu etwas zurück zu geben. Sie können die "return" Zeile von oberhalb wieder löschen und werden sehen, dass der Compiler folgendes ausgibt:
'AddNumbers(int, int)': nicht alle Codepfade geben einen Wert zurück
Der Compiler erinnert uns daran, dass wir eine Funktion haben die nichts zurückgibt, wir haben es aber versprochen. Und der Compiler ist ziemlich klug! Anstatt die Zeile zu entfernen können Sie folgendes versuchen:
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
if(result > 10)
{
return result;
}
}
Sie werden sehen es kommt exakt der selbe Fehler - aber warum? Weil es keine Garantie dafür gibt, dass die Bedingung wahr ist und die "return" Zeile ausgeführt wird. Sie können das beheben indem Sie ein return ans Ende der funktion setzen:
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
if(result > 10)
{
return result;
}
return 0;
}
Das wird das Problem beheben das wir eben geschaffen haben, und es wird Ihnen zeigen, dass wir auch mehr als nur einen Rückgabewert in einer Funktion haben können. Und sobald eine return-Bedingung erfüllt ist, wird diese Funtkion verlassen und kein weiterer Code darin ausgeführt. In diesem Fall bedeutet das, dass so lange das Ergebnis höher als 10 ist, wird das "return 0" nie erreicht.
This article has been deprecated!
This article has been re-organized and updated to better match the rest of the tutorial.
We suggest that you read this article instead: Methods (functions)