Шаг 11.
Язык программирования C#. Начала
Знакомство с языком C#. Окно с полем ввода

    На этом шаге мы рассмотрим особенности реализации такой программы.

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

    Диалоговое окно с полем ввода отображается так же просто, как и диалоговое окно с сообщением. Правда, для отображения окна с нолем ввода нам придется прибегнуть к средствам языка 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. Текст программы и ссылки


Напомним, что мало добавить в программный код инструкции подключения пространств имен. Необходимо также добавить соответствующие ссылки в проект. Для этого следует в меню Project (Проект) выбрать команду Add Reference (Добавить ссылку) и в открывшемся окне выбрать строки с названиями подключаемых пространств имен.

    В главном методе программы есть команда string name. Этой командой объявляется переменная name, относящаяся к текстовому типу string. Проще говоря, значением переменной name может быть текст.

    Переменная - это блок памяти, к которому обращаются по имени (название переменной). Переменную удобно представлять в виде ячейки с надписью на дверце. В эту ячейку можно что-то положить (записать значение) или посмотреть, что там находится (прочитать значение). У каждой переменной есть тип. Тип переменной влияет на объем памяти, выделяемой под переменную, а также на то, какие значения можно записывать в переменную и какие операции с этой переменной можно выполнять.

    Каждая переменная в языке С# должна быть объявлена. Для этого указывается тип переменной и ее название. В данном случае в качестве идентификатора типа указано ключевое слово string, означающее, что переменная является текстовой: значением такой переменной разрешается присвоить текст. Объявлять переменные можно фактически в любом месте программы (главного метода), но обязательно до того, как переменная первый раз используется.


Идентификатор string является псевдонимом (или синонимом) для инструкции System.String. Это обращение к классу String из пространства имен System. Если пространство имен System подключено, то вместо идентификатора string можно использовать название класса String.

    Класс String предназначен для реализации текста. Текст реализуется в виде объекта класса String. Но то, как выше описывался способ реализации переменных, относится к базовым типам, а не к объектам. Другими словами, способ реализации объектов сложнее, чем было описано выше. Тем не менее пока что это не столь важно, и мы можем думать о текстовой переменной как об обычной переменной базового типа. Базовые типы данных, классы и объекты обсуждаются позже.


    Для отображения диалогового окна с полем ввода из класса Interaction вызывается статический метод InputBox(). Аргументами методу передается текст "Как Вас зовут?" (первый аргумент) и "Давайте познакомимся..." (второй аргумент). Первый аргумент метода определяет текст, отображаемый в диалоговом окне сверху над полем ввода, в то время как второй аргумент задает название окна.

    Метод InputBox() возвращает результат. Это позволяет отождествлять инструкцию вызова метода с некоторым значением. Для метода InputBox() возвращаемое значение - это введенный пользователем в поле диалогового окна текст. Данное значение присваивается переменной name. Поэтому в результате выполнения команды

            name = Interaction.InputBox(
                "Как Вас зовут?", // Текст над полем ввода 
                "Давайте познакомимся..." // Название окна
                );
открывается диалоговое окно с полем ввода, а переменной name значением присваивается (после того как пользователь нажмет кнопку ОК) текст из поля ввода.


В C# оператором присваивания является символ равенства =. Выражение вида переменная=значение обрабатывается так: в переменную, указанную слева от оператора присваивания, записывается значение, указанное справа от оператора присваивания.

    Командой

      string txt = "Очень приятно, " + name + "!";
объявляется еще одна текстовая переменная, которая называется txt. При объявлении переменной ей сразу присваивается значение. Так можно делать. Значением, присваиваемым переменной txt, указано выражение "Очень приятно, " + name + "!". Это сумма (использован оператор сложения +) трех текстовых значений: к текстовому литералу "Очень приятно, " прибавляется значение переменной name, и к тому, что получилось, прибавляется текстовый литерал "!" (состоящий всего из одного символа, но все равно это текст). Если операция сложения применяется к текстовым значениям, то происходит формирование новой текстовой строки путем объединения (конкатенации) складываемых фрагментов. В данном случае переменной txt присваивается текст, получающийся объединением текста "Очень приятно, ", значения текстовой переменной name (то, что ввел пользователь) и текста "!". После того как значение переменной txt определено, переменная передается первым аргументом методу Show() из класса MessageBox. Вторым аргументом передается текст "Знакомство состоялось", определяющий заголовок диалогового окна. В результате выполнения команды
  MessageBox.Show(txt, "Знакомство состоялось");
появляется диалоговое окно с сообщением, содержащим введенный пользователем текст.

    На следующем шаге мы рассмотрим консольный ввод.




Предыдущий шаг Содержание Следующий шаг