Was ist eine Funktion (Methode) in C#?
In C# nennt man Funktionen meistens Methoden. Eine Methode ist ein Codeblock, der eine bestimmte Aufgabe ausführt. Sie kann Eingaben (Parameter) entgegennehmen, etwas verarbeiten und optional einen Wert zurückgeben.
Methoden helfen dir, deinen Code zu strukturieren, wiederzuverwenden und verständlicher zu machen.
Grundlegende Syntax einer Methode
Eine einfache Methode in C# sieht so aus:
int Addiere(int a, int b)
{
return a + b;
}
Erklärung:
int — Rückgabewert (hier: ganze Zahl).
Addiere — Methodenname.
(int a, int b) — Parameter (Eingaben).
return a + b; — Rückgabe der Summe.
Parameter
Methoden können keine, eine oder mehrere Parameter haben. Über Parameter gibst du der Methode Werte mit.
Beispiel ohne Parameter:
void Begruesse()
{
Console.WriteLine("Hallo und willkommen!");
}
Diese Methode hat keine Eingabeparameter und gibt keinen Wert zurück (void).
Rückgabewerte
Methoden können Werte mit return zurückgeben. Der Rückgabetyp muss im Methodenkopf angegeben werden.
Wenn keine Rückgabe erfolgt, wird void verwendet.
Beispiel:
int summe = Addiere(5, 3);
Console.WriteLine(summe); // Ausgabe: 8
Statische Methoden
Eine static-Methode gehört zur Klasse an sich, nicht zu einer Instanz. Man kann sie aufrufen, ohne ein Objekt zu erzeugen.
static int Addiere(int a, int b)
{
return a + b;
}
// Aufruf in Main():
int ergebnis = Addiere(5, 3);
Mehrere Rückgabewerte
Standardmäßig geben Methoden nur einen Wert zurück. Du kannst aber:
- Tuples (ab C# 7) benutzen:
static (int Summe, int Differenz) Berechne(int a, int b)
{
return (a + b, a - b);
}
var ergebnis = Berechne(10, 3);
Console.WriteLine($"Summe: {ergebnis.Summe}, Differenz: {ergebnis.Differenz}");
Wann schreibe ich eigene Methoden?
Methoden solltest du schreiben, um:
- Code, den du mehrfach brauchst, wiederzuverwenden.
- deinen Code besser lesbar und strukturierter zu machen.
- Funktionalitäten zu kapseln und einfacher wartbar zu machen.
Beispiel einer Hilfsmethode:
bool IstGerade(int zahl)
{
return zahl % 2 == 0;
}
Methodenüberladung
Du kannst mehrere Methoden mit demselben Namen haben, die sich in der Parameterliste unterscheiden. So kann die Methode je nach Aufruf unterschiedlich reagieren.
static int Addiere(int a, int b)
{
return a + b;
}
static double Addiere(double a, double b)
{
return a + b;
}