Main()-Rückgabewerte (C#-Programmierhandbuch)

Aktualisiert: November 2007

Die Main-Methode kann vom Typ void sein:

static void Main()
{
    //...
}

Sie kann außerdem int zurückgeben:

static int Main()
{
    //...
    return 0;
}

Wenn der Rückgabewert von Main nicht benötigt wird, kann der Code durch das Zurückgeben von void geringfügig vereinfacht werden. Das Zurückgeben einer ganzen Zahl ermöglicht es dem Programm jedoch, Statusinformationen mit anderen Programmen oder Skripts zu verknüpfen, von denen die ausführbare Datei aufgerufen wird. Das folgende Beispiel zeigt, wie der Rückgabewert von Main verwendet werden kann.

Beispiel

In diesem Beispiel wird eine Batchdatei verwendet, um ein Programm auszuführen und den Rückgabewert der Main-Funktion zu testen. Beim Ausführen eines Programms unter Windows wird ein evtl. von der Main-Funktion zurückgegebener Wert in einer Umgebungsvariablen mit dem Namen ERRORLEVEL gespeichert. Batchdateien können daher das Ergebnis der Ausführung bestimmen, indem sie die ERRORLEVEL-Variable überprüfen. In der Regel signalisiert ein Rückgabewert von 0 (null) die erfolgreiche Ausführung. Im folgenden einfachen Programm gibt die Main-Funktion den Wert 0 (null) zurück.

class MainReturnValTest
{
    static int Main()
    {
        //...
        return 0;
    }
}

Weil dieses Beispiel eine Batchdatei verwendet, wird der Code am günstigsten von der Befehlszeile aus kompiliert, wie in Gewusst wie: Festlegen von Umgebungsvariablen beschrieben.

Als Nächstes wird eine Batchdatei verwendet, um die ausführbare Datei aufzurufen, die sich aus dem vorherigen Codebeispiel ergibt. Weil der Code 0 (null) zurückgibt, wird eine Erfolgsmeldung ausgegeben. Wenn Sie den vorherigen Code jedoch so umschreiben, dass ein Wert ungleich 0 (null) zurückgegeben wird, und Sie den Code dann erneut kompilieren, liefert ein Ausführen der Batchdatei die Meldung, dass die Ausführung fehlgeschlagen ist.

rem test.bat
@echo off
MainReturnValueTest
@if "%ERRORLEVEL%" == "0" goto good

:fail
    echo Execution Failed
    echo return value = %ERRORLEVEL%
    goto end

:good
    echo Execution Succeded
    echo return value = %ERRORLEVEL%
    goto end

:end

Beispielausgabe

Execution Succeded

return value = 0

Siehe auch

Aufgaben

Gewusst wie: Anzeigen von Befehlszeilenargumenten (C#-Programmierhandbuch)

Gewusst wie: Zugreifen auf Befehlszeilenargumente mithilfe von foreach (C#-Programmierhandbuch)

Konzepte

C#-Programmierhandbuch

Main() und Befehlszeilenargumente (C#-Programmierhandbuch)

Weitere Ressourcen

C#-Referenz