Main() 返回值(C# 编程指南)

Main 方法可以返回 void

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

它还可以返回 int

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

如果不使用 Main 的返回值,则返回 void 可以稍微简化代码。但是,如果返回整数,则程序可以与调用该可执行文件的其他程序或脚本交流状态信息。下面的示例演示如何访问 Main 的返回值。

此示例使用一个批处理文件来运行程序,并测试 Main 函数的返回值。在 Windows 中执行程序时,Main 函数返回的任何值都将存储在名为 ERRORLEVEL 的环境变量中。通过检查 ERRORLEVEL 变量,批处理文件可以确定执行结果。通常,返回值为零指示执行成功。下面是一个简单程序示例,从 Main 函数返回零。零指示程序成功运行。请将该程序保存为 MainReturnValTest.cs。

// Save this program as MainReturnValTest.cs.
class MainReturnValTest
{
    static int Main()
    {
        //...
        return 0;
    }
}

此示例使用了批处理文件,因此最好在命令提示中编译这段代码。请按照How to: Set Environment Variables for the Visual Studio Command Line中的说明启用命令行生成,或者使用 Visual Studio 命令提示(可通过“开始”菜单中的“Visual Studio Tools”访问)。在命令提示符下,定位到保存程序的文件夹。下面的命令编译 MainReturnValTest.cs,生成可执行文件 MainReturnValTest.exe。

csc MainReturnValTest.cs

接下来,创建一个批处理文件,运行 MainReturnValTest.exe 并显示结果。将下面的代码粘贴到文本文件中,将该文件另存为 test.bat,保存到包含 MainReturnValTest.cs 和 MainReturnValTest.exe 的文件夹中。在命令提示符下,键入 test,运行该批处理文件。

因为代码返回零,所以该批处理文件会报告成功。但是,如果将 MainReturnValTest.cs 更改为返回非零值,然后重新编译程序,则批处理文件的后续执行将报告失败。

rem test.bat
@echo off
MainReturnValTest
@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

示例输出

Execution succeeded

Return value = 0

请参阅

C# 编程指南

C# 参考

Main() 和命令行参数(C# 编程指南)

如何:显示命令行参数(C# 编程指南)

如何:使用 foreach 访问命令行参数(C# 编程指南)