Значения, возвращаемые методом 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;
    }
}

Поскольку в этом примере используется пакетный файл, рекомендуется выполнять компиляцию кода из помощью командной строки. Выполните инструкции из раздела Практическое руководство. Задание переменных среды для включения построений из командной строки или воспользуйтесь командной строкой Visual Studio, которую можно открыть с помощью пункта Средства Visual Studio в меню Пуск. В командной строке перейдите в папку, в которой сохранена программа. С помощью показанной ниже команды выполняется компиляция файла MainReturnValTest.cs и создается исполняемый файл MainReturnValTest.exe.

csc MainReturnValTest.cs

Далее создайте пакетный файл для запуска файла MainReturnValTest.exe и вывода результата. Вставьте следующий код в текстовый файл и сохраните его под именем test.bat в папке, содержащей файлы MainReturnValTest.cs и MainReturnValTest.exe. Введите в командной строке команду test, чтобы запустить командный файл.

Поскольку код возвращает нулевое значение, пакетный файл сообщает об успехе. Однако, если изменить файл MainReturnValTest.cs, чтобы он возвращал ненулевое значение, и затем перекомпилировать программу, при последующем выполнении пакетного файла будет выведено сообщение о неудаче.

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

Пример результатов

Execution succeeded

Return value = 0

См. также

Задачи

Практическое руководство. Отображение аргументов командной строки (Руководство по программированию на C#)

Практическое руководство. Доступ к аргументам командной строки с помощью оператора foreach (Руководство по программированию на C#)

Основные понятия

Руководство по программированию на C#

Main() и аргументы командной строки (Руководство по программированию на C#)

Другие ресурсы

Справочник по C#