Программирование >>  Программирование с использованием ajax 

1 ... 45 46 47 [ 48 ] 49 50 51 ... 396


static void Main()

static void Main(string[] args)

static int Main ()

static int Main(string [ ] args)

В третьей и четвертой версии она возвращает значение int, которое может использоваться для уведомления о том, как завершается работа приложения, и зачастую применяется как признак ошибки (разумеется, это не является обязательным). Как правило, возврат значения О свидетельствует о нормальном завершении работы приложения (т.е. приложение закончило выполнение своих задач и может быть безопасно завершено).

Необязательный параметр args в функции Main () дает возможность передавать в приложение информацию извне во время выполнения. Эта информация задается в виде параметров командной строки.

Вам уже наверняка доводилось встречаться с параметрами командной строки. При запуске приложения из командной строки информацию, вроде того, какой файл требуется загрузить на время работы приложения, часто можно задавать напрямую. Например, возьмем доступное в Windows приложение Notepad. Это приложение можно запустить путем ввода Notepad в окне командной строки или в окне, которое появляется при выборе в меню Start (Пуск) пункта Run (Выполнить). Вместо Notepad в этих окнах можно также ввести и что-то вроде Notepad myfile.txt . Тогда приложение Notepad при запуске либо сразу же загрузит файл по имени myfile.txt, либо предложит создать файл с таким именем, если он не существует. В данном случае myf ile. txt является аргументом командной строки. Именно такое поведение и позволяет обеспечивать в консольных приложениях параметр args.

При выполнении консольного приложения все заданные параметры командной строки помещаются в массив args. После этого их можно использовать в приложении. В следующем практическом занятии демонстрируются соответствующий пример. Аргументы командной строки можно задавать в любом количестве, каждый из них все равно будет выводиться в окне консоли.

Двактнческое занятма Аргументы командной строки

1. Создайте новое консольное приложение по имени Ch06Ex04 и сохраните его в каталоге С: \BegVCSharp\Chapter06.

2. Добавьте в файл Program.cs следующий код:

class Program {

static void Main(string[] args) {

Console.WriteLine( {0} conmand line arguments were specified: , args.Length) ; Вывод аргументов командной строки

foreach (string arg in args) Console.WriteLine(arg);

Console.ReadKey();

3. Откройте окно со страницами свойств проекта (щелкнув правой кнопкой мыши на имени проекта Ch06Ex04 в окне Solution Explorer (Проводник решений) и выбрав в контекстном меню пункт Properties (Свойства)).



4. Отобразите страницу Debug (Отладка) и добавьте в поле Command Line Arguments (Аргументы командной строки) любые необходимые аргументы командной строки, например, так, как показано на рис. 6.7.

AppllC bOn

Bu4d

Buld Evtnb

Rf lourctj

ettngi Pefrrente P th Signing Secuiit>

PubliJh ,

fgumf r,t 2Ь6 myf tie txt e long r гдишюГ

Worting <l <toiy

У; Eniblt Oie Vituai Studio hotting procoi

Рш. 6.7. Добавление аргументов командной строки

5. Запустите приложение. На рис. 6.8 показан результат, который должен получиться.


Рис. 6.8. Приложение Ch О 6Ех О 4 в действии

Описание полученных результатов

Приведенный здесь код является очень простым:

Console.WriteLine( {О} command line arguments were specified: , args.Length) ; foreach (string arg in args) Console.WriteLine(arg);

Параметр args просто используется тем же образом, каким применялся бы любой другой строковый массив. Никаких сложных действий над аргументами не выполняется; все они просто выводятся на экран. В данном случае вы предоставляли эти аргументы через свойства проекта в IDE. Такой подход является удобным способом использовать одинаковые аргументы командной строки при каждом запуске приложения из IDE вместо того, чтобы каждый раз заново вводить их в командной строке. Точно такого же результата можно добиться и открыв окно командной строки в том же каталоге, что и выходные данные проекта (а именно - C:\BegCSharp\Chapter6\ Ch06Ex04\Ch06Ex04\bin\Debug), и набрав следующую команду:

Ch06Ex04 256 myFile.txt а longer argument

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



Использование функций в структурах

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

struct customerName {

public string firstName, lastName;

При наличии переменных типа customerName и желании вывести в окно консоли полное имя, это имя придется собирать из отдельных частей. Для переменной типа CustomerName по имени myCustomer можно воспользоваться, например, таким синтаксисом:

customerName myCustomer; myCustomer.firstName = John ; myCustomer.lastName = Franklin ;

Console.WriteLine( {0} {1} , myCustomer.firstName, myCustomer.lastName);

Добавив в структуру соответствующие функции, код можно упростить и централизовать решение общих задач. В частности, добавить подходящую функцию в структуру можно следующим образом:

struct customerName {

public string firstName, lastName;

public string Name ()

return firstName + + lastName;

Эта функция выглядит во многом так же, как и любая другая показанная в этой главе функция; единственное отличием состоит в том, что в ней не применяется модификатор static. Причины будут объясняться позже в книге; пока что вполне достаточно знать то, что для функций в структурах использовать данное ключевое слово не требуется. Применить эту функцию можно следующим образом:

customerName myCustomer; myCustomer.firstName = John ; myCustomer.lastName = Franklin ; Console.WriteLine(myCustomer.Name());

Такой синтаксис и гораздо проще, и понятнее предьщущего. Здесь важно обратить внимание на то, что у функции Name () имеется прямой доступ к таким членам структуры, как firstName и lastName. В рамках структуры customerName они могут считаться глобальными.

Перегрузка функций

Ранее в этой главе уже показывалось, как соблюдать соответствие с сигнатурой функции при ее вызове. Это означает, что для выполнения операций над разными типами переменных необходимо иметь отдельные функции.



1 ... 45 46 47 [ 48 ] 49 50 51 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика