Выбрать главу

ПРИМЕЧАНИЕ Если оператор сложения «+» применяется по отношению к текстовым

строкам, в результате мы имеем новую строку, которая получается

объединением соответствующих текстовых фрагментов.

Также обратите внимание на то, что текстовым переменным msg и title значение  присваивается  одновременно  с  их  объявлением.  Для  C#

это нормальная практика, причем не только в отношении текстовых

значений. Более  того,  значение переменной msg  определяется на

основе значения переменной name. Это так называемая динамиче-

ская инициализация переменной — при объявлении переменной ей

присваивается значение, вычисляемое на основе значения другой

переменной  (или  переменных).  Переменные,  на  основе  которых

выполняется динамическая инициализация, должны быть предвари-

тельно описаны, и им должно быть присвоено значение.

Еще одна простая программа           41

Окно приветствия отображается командой MessageBox.Show(msg,title,Mes sageBoxButtons.OK,MessageBoxIcon.Warning). В принципе, с методом Show() класса MessageBox мы уже знакомы, но здесь аргументы передаются методу

несколько специфично. Первые два текстовых аргумента определяют, со-

ответственно, текст, который будет отображаться в окне приветствия (пе-

ременная msg), и заголовок окна приветствия (переменная title). Следую-

щие два аргумента — константы, которые определяют количество кнопок

в окне и тип пиктограммы, которая отображается в области окна вместе

с текстом.

Константа  от  обычной  переменной  отличается  тем,  что  значение

переменной в программном коде изменить можно, а значение кон-

станты — нельзя.

Константа OK является одним из возможных значений перечисления Message BoxButtons и означает, что в окне будет всего одна кнопка — кнопка

OK.

Перечисление — это особый тип данных. Переменная, которая от-

носится к типу перечисления, может принимать одно из значений-

констант,  входящих  в  перечисление.  Каждая  константа  из  пере-

числения  имеет  собственное  имя.  Это  имя  указывается  вместе

с  именем  перечисления  —  через  точку.  Например,  инструкция

MessageBoxButtons.OK  означает  константу  OK  из  перечисления

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

в каких случаях можно использовать.

В свою очередь, константа Warning из перечисления MessageBoxIcon озна-

чает, что в области окна будет отображаться пиктограмма «предупрежде-

ния»: восклицательный знак в желтом треугольнике.

ПРИМЕЧАНИЕ Раньше нам уже встречался термин «перегрузка методов». В данном

случае мы имеем дело как раз с ней: при вызове метода Show() аргу-

менты ему можно передавать по-разному, что значительно облегчает

работу программиста.

При запуске программы на экране появляется диалоговое окно, как на

рис. 1.12.

42

Глава 1. Информация к размышлению: язык C# и даже больше

Рис. 1.12.  Окно с полем ввода имени пользователя

В поле ввода этого окна указываем имя и щелкаем на кнопке OK. В резуль-

тате первое окно закроется, а вместо него появится второе (рис. 1.13).

Рис. 1.13.  Окно приветствия с именем пользователя

В  окне  с  полем  ввода  (см.  рис.  1.12)  кроме  кнопки  OK  есть  еще

и кнопка Отмена. Если щелкнуть на кнопке Отмена, окно будет за-

крыто, а в качестве результата возвращается пустая текстовая строка, которая и будет записана в переменную name. Как следствие, второе

окно появится, но в том месте, где в тексте должно быть имя пользо-

вателя, не будет ничего.

Консольная программа

— Что за вздор. Как вам это в голову взбрело?

— Да не взбрело бы, но факты, как говорится,

упрямая вещь.

Из к/ф «Чародеи»

Хотя программирование консольных приложений на C# и считается дур-

ным тоном, попытаться обойти вопрос создания программы, в которой ин-

формация вводится и выводится через консоль, было бы с нашей стороны

слишком самонадеянно.

Консольная программа           43

ПРИМЕЧАНИЕ Консоль — это такое окно, выдержанное в темных тонах, которое

вызывает  ностальгию  по  старым  добрым  временам  операционной

системы MS-DOS.