return in void-Methoden

Wir haben es bereits in der letzten Lektion kurz angesprochen: Auch bei Methoden mit dem Rückgabetyp void kann man return schreiben.

Methoden mit Rückgabewert erfordern zwingend eine return-Anweisung;

void-Methoden ohne Rückgabewert brauchen kein return zu enthalten:

Wenn die Ausführung die abschließende geschweifte Klammer } der Methode erreicht, kehrt sie automatisch zum Aufrufer zurück und übermittelt keine Daten.

In der Praxis müssen Methoden aber oft vorzeitig abgebrochen werden. Bei void-Methoden können Sie das parameterlose return; nutzen, um direkt auszusteigen:

Syntax: return; (kein Ausdruck danach)

Einschränkung: Darf nur in Methoden verwendet werden, die als void markiert sind

Beispiel:

    void SayHi()
    {
        Console.WriteLine("hello welcome to foxDevelop.com");
    }Code-Sprache: C# (cs)

Dies ist eines unserer früheren Beispiele, eine einfache void-Methode ohne erforderliches return.

Wenn wir sie aufrufen, wird die Writeline-Anweisung ausgeführt und „hello welcome to foxDevelop.com“ ausgegeben.

    static void Main()
    {
        Program program = new Program();
        program.SayHi();
    }

    void SayHi()
    {

        Console.WriteLine("hello welcome to foxdevelop.com");
    }Code-Sprache: C# (cs)

Fügen wir nun return; hinzu.

    void SayHi()
    {
        return; // Die return-Anweisung allein beendet die Ausführung der aktuellen Methode
        Console.WriteLine("hello welcome to foxdevelop.com");
    }Code-Sprache: C# (cs)

Bei der Ausführung erscheint keine Ausgabe. Da return; vor Console.WriteLine steht, springt das Programm bei return direkt zurück zum Aufrufer; der nachfolgende Code wird nicht ausgeführt. Das entspricht einem vorzeitigen Beenden.

Jeder Code danach wird niemals ausgeführt.

Also lässt sich auch bei void-Methoden return; verwenden – nur ohne Wert nach return.

    int Add(int a, int b)
    {
        return 100;
    }Code-Sprache: C# (cs)

Nicht-void-Methoden müssen mit return Wert; arbeiten.

Auf return muss ein Ergebnis folgen: eine Variable, ein Literal (Zahlen wie 100 oder 3.14) oder ein Ausdruck wie a+b. Am Ende muss immer ein Ergebnis vorhanden sein.

Wenn Sie das Ergebnis weglassen und nur return; wie bei void schreiben, erhalten Sie einen Fehler.

Mehrere Ausstiege mit return in void-Methoden

    static void Main()
    {
        Program program = new Program();
        program.ShowMax(100,200);
    }

    void ShowMax(int a, int b)
    {
        if (a>b)
            Console.WriteLine($"{a}>{b}"); // Bei erfüllter Bedingung sofort aus der Methode austreten

        if (b > a) 
            Console.WriteLine($"{b}>{a}");
    }Code-Sprache: C# (cs)

Ein Beispiel:

class Program
{
    static void Main()
    {
        Program program = new Program();
        program.Greet();
    }

    private void Greet()
    {
        DateTime dt = DateTime.Now;
        if (dt.Hour < 12)
            return; // Vor 12 Uhr direkt beenden, keine Ausgabe
        Console.WriteLine("Good afternoon!");
    }
}Code-Sprache: C# (cs)

Liegt die aktuelle Uhrzeit nach zwölf Uhr, wird der Nachmittagsgruß ausgegeben; andernfalls entfällt die Ausgabe und die Methode kehrt sofort zurück.

return in void-Methoden

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert