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
Main() und Befehlszeilenargumente (C#-Programmierhandbuch)