Compartir a través de


Valores devueltos de Main() (Guía de programación de C#)

Actualización: noviembre 2007

El método Main puede ser de tipo void:

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

También puede devolver un valor de tipo int:

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

Si no se va a utilizar el valor que devuelve el método Main, entonces devolver void permite crear un código un poco más simple. Sin embargo, devolver un entero permite que el programa relacione información de estado con otros programas o scripts que invocan al ejecutable. En el ejemplo siguiente se muestra cómo utilizar el valor que devuelve Main.

Ejemplo

En este ejemplo, se utiliza un archivo de proceso por lotes para ejecutar un programa y probar el valor que devuelve 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 de proceso por lotes pueden determinar en consecuencia el resultado de la ejecución. Tradicionalmente, un valor devuelto de cero indica una ejecución correcta. El programa que se muestra a continuación es un programa muy simple que devuelve un valor de cero desde la función Main.

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

Dado que este ejemplo utiliza un archivo de proceso por lotes, es mejor compilar el código desde la línea de comandos, como se muestra en Cómo: Establecer variables de entorno.

Luego, se utiliza un archivo de proceso por lotes para invocar al ejecutable que resulta del ejemplo de código anterior. Puesto que el código devuelve un valor de cero, el archivo de proceso por lotes creará un informe de operación correcta, pero si el código anterior se cambia para que devuelva un valor distinto de cero y luego se vuelve a compilar, la ejecución posterior del archivo de proceso por lotes indicará 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 Succeded
    echo return value = %ERRORLEVEL%
    goto end

:end

Resultados del ejemplo

Execution Succeded

return value = 0

Vea también

Tareas

Cómo: Mostrar argumentos de línea de comandos (Guía de programación de C#)

Cómo: Obtener acceso a argumentos de línea de comandos mediante Foreach (Guía de programación de C#)

Conceptos

Guía de programación de C#

Main() y argumentos de línea de comandos (Guía de programación de C#)

Otros recursos

Referencia de C#