Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

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

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

Давайте изменим класс HelloClass так. чтобы он мог обрабатывать параметры командной строки.

// Проверить, передавались ли аргументы командной строки.
using System;
class HelloClass {
 public static int Main(string[] args) {
  Console.WriteLine("*** Аргументы командной строки ***");
  for (int i = 0; i ‹ args.Length; i++) Console.WriteLine("Apгyмeнт: {0} ", args[i]);
  …
 }
}

Здесь с помощью свойства Length объект System.Array проверяется, содержит ли массив строк какие-либо элементы (как вы убедитесь в дальнейшем, все массивы в C# на самом деле имеют тип System.Array и таким образом имеют общее множество членов). В результате прохода по всем элементам массива их значения выводятся в окно консоли. Аргументы в командной строке указываются так, как показано на рис. 3.1.


Рис. 3.1. Аргументы вызова приложения в командной строке

Вместо стандартного цикла for для итераций над массивами входных строк можно использовать ключевое слово C# foreach. Этот элемент синтаксиса будет подробно рассматриваться позже, но вот вам пример его использования:

// Обратите внимание на то, что при использовании'foreach'
// нет необходимости проверять длину массива.
public static int Main(string[] args) {
 …
 foreach (string s in args) Console.WriteLine("Аргумент: {0} ", s);
 …
}

Наконец, доступ к аргументам командной строки обеспечивает также статический метод GetCommandLineArgs() типа System.Environment. Возвращаемым значением этого метода является массив строк. Его первый элемент идентифицирует каталог, содержащий приложение, а остальные элементы в массиве содержат по отдельности аргументы командной строки (при этом нет необходимости определять для метода Main() параметр в виде массива строк).

public static int Main(string[] args) {
 ...
 // Получение аргументов с помощью System.Environment.
 string[] theArgs = Environment.GetCommandLineArgs();
 Console.WriteLine("Путь к приложению: {0}", theArgs[0]);
 …
}

Оглавление книги


Генерация: 1.243. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз