Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 63

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 57 58 59 60 61 62 < 63 > 64 65 66 67 68 69 .. 404 >> Следующая


(i^UmintgMMunn] FjM

. СчМ sot S*4T Мицц 1 A*

4*ug*tt Set Accfebtkn 1 ' SLwfcLRL

-------------- “

3' v.rttma.hiny,. |

«*>?»» jmgJ|IH.WJ

! Vffirtrii Cwm

-J №*«{*>¦

*4**rt «е ?г**тг*-1 L=Ar#r >л*

_ ЯНИН

! СвстютЧ Рч

*......... ¦

,_.___ .------------------------_i***»111T.j

Ж

\ СтвИ | ¦¦ . ~

3. Откройте страницы со свойствами проекта (для этого нужно щелкнуть правой кнопкой мыши на имени проекта Ch06Ex04

в окне Solution Explorer и в раскрывшемся меню выбрать Properties).

4. Выберите страницу Configuration Properties | Debugging и добавьте в установку Command Line Arguments (см. рис. слева)

те аргументы командной строки, которые захотите.

5. Запустите приложение (см. рис. справа).

Как это работает

Код, использованный в данном случае, очень 1ростон:

¦ II rgLbtw [) к 1-Ь-ч IA г; iL.Ci ?Ai j?} 4 ¦. L гч‘Л>с L Jhi’.’-l1 14 .* т ?м,ц.|Л>1у .t-i ~ b ^

j o.arn nil in... Hf-гт | *r.» II i ^1^:

*1.Г i lii-S-Mi

.1 u‘-|—rri!*iTTi1

F're? >n^ fcj Lu."

&

Console.WriteLine('CO) command line arguments were specified:', args.Length); foreach (string arg in args)

Console.WriteLine(arg);

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

В данном примере аргументы заданы посредством .диалога Project Properties в VS. Это удобный способ использовать одни и те же аргументы при каждом запуске приложения из VS: в противном случае пришлось бы набирать их в командной строке при каждом запуске приложения. Такого же результата можно добиться, открыв окно командной строки в той директории, куда осуществляется вывод ВЫХОДНОГО потока приложения (C:\BegCSharp\Chapter6\Ch06Ex04\bin\Debug), И Набрав следующий текст:

Ch06Ex04 256 myFile.txt "a longer argument"

Обратите внимание, что каждый аргумент отделяется от других с помощью пробелов; также существует возможность заключать аргументы в двойные кавычки — в том случае, если потребуется задать более длинный аргумент (двойные кавычки обязательны, если аргумент сам по себе содержит пробелы,— для того, чтобы он не рассматривался в качестве нескольких аргументов).

Функции структур

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

Глава б

В качестве простого примера рассмотрим следующую структуру:

struct customerNwne (

public string firstName, lastName <

)

Если у нас имеются переменные типа customerName и нам необходимо вывести на консоль полное имя, мы будем вынуждены конструировать это имя нз его составных частей. Например, ДЛЯ переменной тнпа customerName С именем customer можно использовать следующий синтаксис:

cuHtomerNama jnyCuetomer; inyCustomer .fir ;Mam * 'John'j myCustomer-lastName » 'Franklin*p

Console.WriteLine('(0) (1)*, customer.firstName, customer.laatName)j

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

struct customerNama (

public string firstName, lastName;

public string Name ()

' ' С

return firstName + * * + laetNanv

3

} -

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

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

Console.WriteLine{customer,Name());

Этот синтаксис гораздо проще и понятнее, чем предшествующий.

Необходимо отметить, что функция Name о имеет непосредственный доступ к полям структуры firstName И lastName. В рамках структуры customerName онн могут считаться глобальными.

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

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

Например, ранее мы использовали следующую программу, в которой содержалась функция С именем MaxValueO:
Функции

127

class Classl (

static int MaxValue(int[] intArray)

(

int maxVal = intArray[01;

for (int i = lj i < intArray.Length; i++)

(

if (intArray[i] > maxVal) maxVal = intArray[i];
Предыдущая << 1 .. 57 58 59 60 61 62 < 63 > 64 65 66 67 68 69 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.