На этом шаге мы рассмотрим особенности реализации такой программы.
В следующем примере мы научимся отображать диалоговое окно с полем ввода. С помощью такого окна в программу можно вводить данные, которые программа сможет использовать.
Диалоговое окно с полем ввода отображается так же просто, как и диалоговое окно с сообщением. Правда, для отображения окна с нолем ввода нам придется прибегнуть к средствам языка Visual Basic. Дело в том, что в языке С# нет встроенных средств для отображения окна с полем ввода. Зато такое окно можно отобразить с привлечением средств языка Visual Basic. Технология .Net Framework позволяет нам прибегнуть к помощи библиотеки Visual Basic при написании программного кода на языке С#. Чтобы воспользоваться этой возможностью, мы должны подключить пространство имен Microsoft.VisualBasic. Если пространство подключено, то в программе будет доступен класс Interaction, в котором есть статический метод InputBox(). Этот метод отображает диалоговое окно с полем ввода, а результатом возвращает текст, введенный пользователем. Небольшой пример программы, в которой использованы описанные выше утилиты для отображения диалогового окна с нолем ввода, представлен в примере ниже.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace pr11_1 { using Microsoft.VisualBasic; using System.Windows.Forms; class Program { static void Main() { // Текстовая переменная: string name; // Отображение окна с полем ввода: name = Interaction.InputBox( "Как Вас зовут?", // Текст над полем ввода "Давайте познакомимся..." // Название окна ); // Еще одна текстовая переменная: string txt = "Очень приятно, " + name + "!"; // Окно с сообщением: MessageBox.Show(txt, "Знакомство состоялось"); } } }
При запуске программы сначала появляется окно, представленное на рисунке 1.
Рис.1. Диалоговое окно с полем ввода
Окно имеет название Давайте познакомимся..., определяемое в программе, и текст Как Вас зовут?, также определяемый в программе. В поле диалогового окна следует ввести текст и щелкнуть кнопку ОК (см. рисунок 1). После этого появляется диалоговое окно с сообщением, причем сообщение содержит текст, введенный ранее пользователем в поле предыдущего диалогового окна. Как может выглядеть окно с сообщением, показано на рисунке 2.
Рис.2. Диалоговое окно с сообщением, содержащим введенный пользователем текст
Теперь проанализируем программный код, который позволяет получить такие результаты. В начале программы подключаются пространства имен Microsoft.VisualBasic и System.Windows.Forms (рисунок 3). Первое из них необходимо для использования статического метода InputBox() из класса Interaction, отображающего окно с полем ввода, а второе пространство имен необходимо для использования статического метода Show() из класса MessageBox.
Рис.3. Текст программы и ссылки
В главном методе программы есть команда string name. Этой командой объявляется переменная name, относящаяся к текстовому типу string. Проще говоря, значением переменной name может быть текст.
Переменная - это блок памяти, к которому обращаются по имени (название переменной). Переменную удобно представлять в виде ячейки с надписью на дверце. В эту ячейку можно что-то положить (записать значение) или посмотреть, что там находится (прочитать значение). У каждой переменной есть тип. Тип переменной влияет на объем памяти, выделяемой под переменную, а также на то, какие значения можно записывать в переменную и какие операции с этой переменной можно выполнять.
Каждая переменная в языке С# должна быть объявлена. Для этого указывается тип переменной и ее название. В данном случае в качестве идентификатора типа указано ключевое слово string, означающее, что переменная является текстовой: значением такой переменной разрешается присвоить текст. Объявлять переменные можно фактически в любом месте программы (главного метода), но обязательно до того, как переменная первый раз используется.
Класс String предназначен для реализации текста. Текст реализуется в виде объекта класса String. Но то, как выше описывался способ реализации переменных, относится к базовым типам, а не к объектам. Другими словами, способ реализации объектов сложнее, чем было описано выше. Тем не менее пока что это не столь важно, и мы можем думать о текстовой переменной как об обычной переменной базового типа. Базовые типы данных, классы и объекты обсуждаются позже.
Для отображения диалогового окна с полем ввода из класса Interaction вызывается статический метод InputBox(). Аргументами методу передается текст "Как Вас зовут?" (первый аргумент) и "Давайте познакомимся..." (второй аргумент). Первый аргумент метода определяет текст, отображаемый в диалоговом окне сверху над полем ввода, в то время как второй аргумент задает название окна.
Метод InputBox() возвращает результат. Это позволяет отождествлять инструкцию вызова метода с некоторым значением. Для метода InputBox() возвращаемое значение - это введенный пользователем в поле диалогового окна текст. Данное значение присваивается переменной name. Поэтому в результате выполнения команды
name = Interaction.InputBox( "Как Вас зовут?", // Текст над полем ввода "Давайте познакомимся..." // Название окна );
Командой
string txt = "Очень приятно, " + name + "!";
MessageBox.Show(txt, "Знакомство состоялось");
На следующем шаге мы рассмотрим консольный ввод.