Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_Prog_Guide.doc
Скачиваний:
16
Добавлен:
16.11.2019
Размер:
6.22 Mб
Скачать

Отображение аргументов командной строки

Для доступа к аргументам, предоставленным для исполняемого файла в командной строке, можно использовать необязательный параметр для Main. Аргументы представлены в форме массива или строк. Каждый элемент массива содержит один аргумент. Пробел между элементами удален. Например, рассмотрим следующие вызовы вымышленного исполняемого файла из командной строки.

Данные, вводимые в командную строку

Массив строк, переданный в Main

исполняемый файл .exe a b c

"a"

"b"

"c"

исполняемый файл .exe один два

"один"

"два"

исполняемый файл .exe "один два" три

"один два"

"три"

Пример

В этом примере показаны аргументы командной строки, переданные в приложение командной строки. Далее представлен результат для первой записи в расположенной выше таблице.

--

How to: Access Command-Line Arguments Using foreach

Another approach to iterating over the array is to use the foreach statement as shown in this example. The foreach statement can be used to iterate over an array, a .NET Framework collection class, or any class or struct that implements the IEnumerable interface.

Example

This example demonstrates how to print out the command line arguments using foreach.

// arguments: John Paul Mary

class CommandLine2

{

static void Main(string[] args)

{

System.Console.WriteLine("Number of command line parameters = {0}", args.Length);

foreach (string s in args)

{

System.Console.WriteLine(s);

}

}

}

Number of command line parameters = 3

John

Paul

Mary

Доступ к аргументам командной строки с помощью оператора "foreach"

Другим методом итерации всех элементов массива является использование оператора foreach, как показано в следующем примере. Оператор foreach можно использовать для итерации всех элементов массива, класса коллекции .NET Framework или любого класса или структуры, реализующих интерфейс IEnumerable.

Пример

В данном примере показано, как напечатать аргументы командной строки с помощью оператора foreach.

--

Main() Return Values

The Main method can be of the type void:

static void Main()

{

//...

}

It can also return an int:

static int Main()

{

//...

return 0;

}

If the return value from Main is not to be used, then returning void allows slightly simpler code. However, returning an integer enables the program to relate status information to other programs or scripts that invoke the executable. An example of using the return value from Main is shown in the following example.

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