Функция MainQ Теперь, когда вы познакомились почти со всеми простыми способами, приме- няемыми для создания и использования функций, давайте вернемся назад и более подробно рассмотрим функцию Main (). Как было сказано ранее, функция Main о является точкой входа в приложение на С# и выполнение этой функции охватывает выполнение приложения. У этой функции имеется параметр — string [] args, однако до сих пор мы его не описы- вали. В данном разделе вы познакомитесь с этим параметром и узнаете, каким образом его можно применять. Существуют четыре различные сигнатуры, которые можно использовать для функции Main(): • static void Main() • static void Main(string[] args) 124 Глава 6 • static int Main() • static int Main(string[] args) При желании аргумент args можно опускать. Причина, по которой мы до сих пор пользовались вариантом с этим аргументом,— в том, что такая версия генерируется автоматически при создании консольного приложения в VS. Третья и четвертая версии сигнатуры, приведенные выше, возвращают значение типа int, которое может быть использовано для указания на то, каким образом завершилось выполнение приложения, и которое часто используется для определения ошибки (хотя это в любом случае является обязательным). Обычно, возвращаемое значение равно О, что означает "нормальное" окончание (т. е. приложение закончило свою работу и может быть завершено в безопасном режиме). Параметр args функции Main о представляет собой метод, позволяющий при- ложению получать извне информацию, задаваемую в процессе его выполнения. Эта информация принимает форму параметров командной строки. Параметры командной строки вам уже наверняка встречались. Когда произво- дится запуск приложения из командной строки, то при этом очень часто имеется возможность непосредственно задать некоторую информацию, например, имя файла, загрузка которого требуется для выполнения приложения. В качестве при- мера давайте рассмотрим Windows-приложение Notepad. Запустить его можно, просто набрав notepad — либо в окне командного приглашения, либо в окне, которое появляется при выборе опции Run (Выполнить) из меню Start (Пуск). Однако в этих же окнах мы можем набрать нечто вроде: notepad "myfile.txt". В результате Notepad либо загрузит файл myfile.txt, либо, если такого файла не существует, предложит его создать. В данном случае "myfiie.txt" является аргу- ментом командной строки. Мы можем сами написать консольное приложение, ко- торое будет работать аналогичным образом, использовав параметр args. Когда консольное приложение запускается, то все заданные параметры команд- ной строки помещаются в массив args. В дальнейшем эти параметры могут исполь- зоваться по мере необходимости. Давайте рассмотрим пример выполнения таких действий. Практикум: аргументы командной строки 1. Создайте новое консольное приложение с именем chO6ExO4 В директории C:\BegCSharp\Chapter6. 2. Добавьте следующий код в ciassi.cs: class Classl { static void Main(string!] args) { Console.WriteLineС{0} command line arguments were specified:' args.Length); foreach (string arg in args) Console.WriteLine(arg); Функции 125 orm: 1 AC«:IVC(.N'tr £i Сог**Цш&ог* Properties jч • >.: ; I 1 »• *1« --' -- = ....-:r^;>'»3 FA« ] '"';: "•"' " '" ч j jt-^tURL ' • •" ~-" • j lM»»D^ec{^y ' : ' ' Command line Argument* Откройте страницы со свойствами проекта (для этого нужно щелкнуть правой кнопкой мыши на имени проекта chO6ExO4 в окне Solution Explorer и в раскрывшемся меню выбрать Properties). Выберите страницу Configuration Properties | Debugging и добавьте в установку Command Line Arguments (см. рис. слева) те аргументы командной строки, которые захотите. 5. Запустите приложение (см. рис. справа). Как это работает Код, использованный в данном случае, очень простой: Console.WriteLine(•{0} command line arguments were specified:", args.Length); foreach (string arg in args) Console.WriteLine(arg); Мы используем параметр args точно таким же образом, как использовали бы любой другой строковый массив. Мы не делаем с аргументами ничего особенного, просто выводим на экран все, что было задано. В данном примере аргументы заданы посредством диалога Project Properties в VS. Это удобный способ использовать одни и те же аргументы при каждом запуске приложения из VS: в противном случае пришлось бы набирать их в командной строке при каждом запуске приложения. Такого же результата можно добиться, открыв окно командной строки в той директории, куда осуществляется вывод ВЫХОДНОГСГ ПОТОКа приложения (C:\BegCSharp\Chapter6\ChO6ExO4\bin\Debug), И на- брав следующий текст: ChO6ExO4 256 myFile.txt "a longer argument" Обратите внимание, что каждый аргумент отделяется от других с помощью про- белов; также существует возможность заключать аргументы в двойные кавычки — в том случае, если потребуется задать более длинный аргумент (двойные кавычки обязательны, если аргумент сам по себе содержит пробелы,
|