ниями. Поэтому переменная типа string, то есть текстовая переменная, является объектом (точнее, ссылкой на объект класса string). И для
нас все это пока абсолютно не важно.
40
Глава 1. Информация к размышлению: язык C# и даже больше
После того как мы объявили текстовую переменную name, ее можно ис-
пользовать. Значение этой переменной присваивается командой name=
= Inter action.InputBox("Как Вас зовут?","Давайте познакомимся"). Это
команда
(знак равенства). Переменной слева от оператора присваивания (в дан-
ном случае это переменная name) присваивается значение выражения, ука-
занного справа от оператора присваивания. Справа выражение немного
странное, но тем не менее не лишенное смысла. Из класса Interaction вы-
зывается метод InputBox(). Как следствие, на экране появится диалоговое
окно с полем ввода. В качестве результата метода возвращается текстовое
значение, которое пользователь введет в это поле ввода. Собственно, это
значение и записывается в переменную name. Текстовые аргументы метода
InputBox() определяют текст в области окна (текст над полем ввода) и на-
звание для окна (отображается в строке заголовка).
ПРИМЕЧАНИЕ Тестовые значения (литералы) в программном коде заключаются
в двойные кавычки.
Далее следуют две разные, но в то же время и очень одинаковые коман-
ды (если смотреть в корень): string msg="Очень приятно, "+name+"!"
и string title="Окно приветствия". В обоих случаях объявляются и одно-
временно с объявлением инициализируются текстовые переменные msg и title. С переменной title вообще все просто — в качестве значения пере-
менной указан текст в двойных кавычках. Значение переменной msg вычис-
ляется несколько сложнее: объединяется в одну строку текст "Очень при
ятно, ", текстовое значение переменной name и текст "!".
ПРИМЕЧАНИЕ Если оператор сложения «+» применяется по отношению к текстовым
строкам, в результате мы имеем новую строку, которая получается
объединением соответствующих текстовых фрагментов.
Также обратите внимание на то, что текстовым переменным msg и title значение присваивается одновременно с их объявлением. Для C#
это нормальная практика, причем не только в отношении текстовых
значений. Более того, значение переменной msg определяется на
основе значения переменной name. Это так называемая динамиче-
ская инициализация переменной — при объявлении переменной ей
присваивается значение, вычисляемое на основе значения другой
переменной (или переменных). Переменные, на основе которых
выполняется динамическая инициализация, должны быть предвари-
тельно описаны, и им должно быть присвоено значение.
Еще одна простая программа 41
Окно приветствия отображается командой MessageBox.Show(msg,title,Mes sageBoxButtons.OK,MessageBoxIcon.Warning). В принципе, с методом Show() класса MessageBox мы уже знакомы, но здесь аргументы передаются методу
несколько специфично. Первые два текстовых аргумента определяют, со-
ответственно, текст, который будет отображаться в окне приветствия (пе-
ременная msg), и заголовок окна приветствия (переменная title). Следую-
щие два аргумента — константы, которые определяют количество кнопок
в окне и тип пиктограммы, которая отображается в области окна вместе
с текстом.
Константа от обычной переменной отличается тем, что значение
переменной в программном коде изменить можно, а значение кон-
станты — нельзя.
Константа OK является одним из возможных значений
OK.
Перечисление — это особый тип данных. Переменная, которая от-
носится к типу перечисления, может принимать одно из значений-
констант, входящих в перечисление. Каждая константа из пере-
числения имеет собственное имя. Это имя указывается вместе
с именем перечисления — через точку. Например, инструкция
MessageBoxButtons.OK означает константу OK из перечисления
MessageBoxButtons. Перечисления мы будем обсуждать отдельно, но несколько позже. Пока нам важно запомнить, какую константу
в каких случаях можно использовать.
В свою очередь, константа Warning из перечисления MessageBoxIcon озна-
чает, что в области окна будет отображаться пиктограмма «предупрежде-
ния»: восклицательный знак в желтом треугольнике.
ПРИМЕЧАНИЕ Раньше нам уже встречался термин «перегрузка методов». В данном
случае мы имеем дело как раз с ней: при вызове метода Show() аргу-
менты ему можно передавать по-разному, что значительно облегчает
работу программиста.
При запуске программы на экране появляется диалоговое окно, как на
рис. 1.12.
42
Глава 1. Информация к размышлению: язык C# и даже больше
Рис. 1.12. Окно с полем ввода имени пользователя
В поле ввода этого окна указываем имя и щелкаем на кнопке OK. В резуль-
тате первое окно закроется, а вместо него появится второе (рис. 1.13).
Рис. 1.13. Окно приветствия с именем пользователя