ПРИМЕЧАНИЕ Если оператор сложения «+» применяется по отношению к текстовым
строкам, в результате мы имеем новую строку, которая получается
объединением соответствующих текстовых фрагментов.
Также обратите внимание на то, что текстовым переменным 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.