logo search
CSharp_Prog_Guide

Значения, возвращаемые методом Main()

Метод Main может возвращать значение типа void:

static void Main()

{

//...

}

Он также может возвращать значение типа int:

static int Main()

{

//...

return 0;

}

Если значение, возвращаемое методом Main использоваться не будет, то указание в качестве возвращаемого типа void несколько упрощает код. Однако возврат целого значения позволяет программе передавать информацию о своем состоянии другим программам и сценариям, которые вызывают исполняемые файл. Ниже показан пример использования значения, возвращаемого методом Main.

Example

In this example a batch file is used to execute a program and test the return value of the Main function. When a program is executed in Windows, any value returned from the Main function is stored in an environment variable called ERRORLEVEL. By inspecting the ERRORLEVEL variable, batch files can therefore determine the outcome of execution. Traditionally, a return value of zero indicates successful execution. Below is a very simple program that returns zero from the Main function.

class MainReturnValTest

{

static int Main()

{

//...

return 0;

}

}

Next, a batch file is used to invoke the executable resulting from the previous code example. Because the code returns zero, the batch file will report success, but if the previous code is changed to return a non-zero value, and is then re-compiled, subsequent execution of the batch file will indicate failure.

@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

Sample Output

Execution Succeded

return value = 0

Пример

В этом примере с помощью пакетного файла запускается программа, после чего проверяется значение, возвращаемое функцией Main. При запуске программы в Windows значение, возвращаемое функцией Main, сохраняется в переменной среды, которая называется ERRORLEVEL. Проверка значения переменной ERRORLEVEL дает пакетному файлу возможность определить результат выполнения программы. В большинстве случаев на успешное выполнение указывает нулевое значение. Ниже показана простая программа, функция Main в которой возвращает ноль1.

class MainReturnValTest

{

static int Main()

{

//...

return 0;

}

}

Теперь исполняемый файл, созданный на основе приведенного выше примера кода, можно запустить с помощью пакетного файла, описанного ниже. Поскольку в результате выполнения кода будет возвращено значение 0, пакетный файл сообщит об успешном запуске программы. Если же изменить код таким образом, чтобы возвращалось значение, отличное от нуля, а затем повторно скомпилировать его, при выполнении пакетного файла будет отображено сообщение о сбое.

--2