Valores devueltos de Main() (Guía de programación de C#)
El método Main puede devolver void:
static void Main()
{
//...
}
También puede devolver un valor de tipo int:
static int Main()
{
//...
return 0;
}
Si no se usa el valor devuelto por el método Main, la devolución de void permite un código un poco más simple. Sin embargo, la devolución de un entero permite que el programa comunique información de estado a otros programas o scripts que invocan el archivo ejecutable. En el ejemplo siguiente, se muestra cómo se puede obtener acceso al valor devuelto de Main.
Ejemplo
En este ejemplo, se usa un archivo por lotes para ejecutar un programa y probar el valor devuelto de la función Main. Cuando un programa se ejecuta en Windows, cualquier valor que devuelva la función Main se almacena en una variable de entorno denominada ERRORLEVEL. Al inspeccionar la variable ERRORLEVEL, los archivos por lotes pueden determinar el resultado de la ejecución. Tradicionalmente, un valor devuelto de cero indica una ejecución correcta. El siguiente ejemplo es un programa sencillo que devuelve el valor cero para la función Main. El cero indica que el programa se ejecutó correctamente. Guarde el programa como MainReturnValTest.cs.
// Save this program as MainReturnValTest.cs.
class MainReturnValTest
{
static int Main()
{
//...
return 0;
}
}
Dado que en este ejemplo se usa un archivo por lotes, se recomienda compilar el código desde un símbolo del sistema. Siga las instrucciones que se describen en Cómo: Establecer variables de entorno para habilitar las compilaciones desde la línea de comandos, o bien, use el símbolo del sistema de Visual Studio, que está disponible en el menú Inicio bajo Visual Studio Tools. Desde el símbolo del sistema, navegue hasta la carpeta donde guardó el programa. El comando siguiente compila MainReturnValTest.cs y genera el archivo ejecutable MainReturnValTest.exe.
csc MainReturnValTest.cs
A continuación, cree un archivo por lotes para ejecutar MainReturnValTest.exe y mostrar el resultado. Pegue el código siguiente en un archivo de texto y guárdelo como test.bat en la carpeta que contiene MainReturnValTest.cs y MainReturnValTest.exe. Ejecute el archivo por lotes; para ello, escriba test en el símbolo del sistema.
Dado que el código devuelve el valor cero, el archivo por lotes se ejecutará correctamente. Sin embargo, si cambia MainReturnValTest.cs de modo que se devuelva un valor distinto de cero y, a continuación, vuelve a compilar el programa, la ejecución subsiguiente del archivo por lotes generará un error.
rem test.bat
@echo off
MainReturnValueTest
@if "%ERRORLEVEL%" == "0" goto good
:fail
echo Execution Failed
echo return value = %ERRORLEVEL%
goto end
:good
echo Execution succeeded
echo Return value = %ERRORLEVEL%
goto end
:end
Resultados del ejemplo
Execution succeeded
Return value = 0
Vea también
Tareas
Cómo: Mostrar argumentos de la línea de comandos (Guía de programación de C#)
Conceptos
Main() y argumentos de línea de comandos (Guía de programación de C#)