Шаг 12.
Язык программирования C#. Начала
Знакомство с языком C#. Консольный ввод

    На этом шаге мы рассмотрим организацию такого ввода.

    Информацию можно вводить не только через окно с полем ввода, но и через консольные устройства: набирая значение с помощью клавиатуры (с отображением в консольном окне). Далее мы рассмотрим пример, в котором показано, как в программе может быть реализован консольный ввод. Программа похожа на программу из предыдущего шага: пользователь вводит текст, и затем появляется сообщение, содержащее этот текст. Но в предыдущем примере текст вводился в поле диалогового окна, и сообщение появлялось в диалоговом окне. Теперь для ввода и вывода информации мы используем консольное окно. Нам понадобится статический метод ReadLine() из класса Console для считывания введенного пользователем текста. Для вывода сообщений в консольное окно мы используем статические методы Write() и WriteLine() из класса Console. Различие между методами Write() и WriteLine() в том, что методом Write() в консольном окне отображается значение аргумента (например, текст) и курсор остается в той же строке. То есть следующее сообщение появится в той же строке, в которую выводилось предыдущее сообщение. Методом WriteLine() отображается значение аргумента в консольном окне, и по завершении отображения выполняется переход к новой строке: следующее сообщение появится в новой строке. Далее рассмотрим программный код.


В данном случае мы создаем консольный проект. Для компилирования и запуска программы на выполнение используем команду Start Without Debugging (Запуск без отладки) из меню Debug (Отладка) или нажимаем комбинацию клавиш Ctrl+F5.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace pr12_1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Текстовая переменная: 
            string name;
            // Заголовок консольного окна:
            Console.Title = "Давайте познакомимся...";
            // Сообщение в консоли:
            Console.Write("Как Вас зовут?");
            // Считывание текста: 
            name = Console.ReadLine();
            // Еще одна текстовая переменная: 
            string txt = "Очень приятно, " + name + "!";
            // Заголовок консольного окна:
            Console.Title = "Знакомство состоялось";
            // Сообщение в консоли:
            Console.WriteLine(txt);
        }
    }
}
Архив проекта можно взять здесь.

    В программе используется класс Console, поэтому мы подключаем пространство имен System, к которому относится этот класс.


Также мы используем класс String из пространства имен System для реализации текстовых переменных. Но вместо названия класса String при объявлении текстовых переменных задействован идентификатор string как псевдоним для инструкции System.String. В последующих примерах мы также в основном будем использовать идентификатор string.

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

  Console.Title = "Давайте познакомимся...";

    У класса Console есть свойство Title, определяющее название, отображаемое в консольном окне. По умолчанию при запуске программы на выполнение в названии консольного окна отображается путь к файлу программы. Присвоив значение свойству, мы определяем название, которое отображается в строке названия консольного окна. Более детально свойства обсуждаются в контексте изучения классов и объектов.

    Командой

  Console.Write("Как Вас зовут?");
в консоли печатается сообщение. Курсор остается в той же строке. Ситуация проиллюстрирована на рисунке 1.


Рис.1. Сообщение в консольном окне и ожидание ввода пользователя

    Программа ожидает, пока пользователь введет значение (текст). Следует ввести текст (имя пользователя) и нажать клавишу Enter. На рисунке 2 показана ситуация, когда пользователь ввел текст, но еще не нажал клавишу Enter.


Рис.2. Консольное окно с введенным текстом перед нажатием клавиши Enter

    Считывание введенного пользователем текста выполняется командой

  name = Console.ReadLine();
Здесь из класса Console вызывается статический метод ReadLine(). Метод считывает введенное пользователем текстовое значение и возвращает это значение результатом. Текст запоминается с помощью текстовой переменной name. Еще одна текстовая переменная объявляется и инициализируется командой
  string txt = "Очень приятно, " + name + "!";

Значение переменной txt формируется объединением текста "Очень приятно, ", значения текстовой переменной name и текста "!".


Инициализация переменной означает первое (после объявления или во время объявления) присваивание значения этой переменной.

    После этого командой

  Console.Title = "Знакомство состоялось";
консольному окну присваивается новое название, а затем с помощью команды
  Console.WriteLine(txt);
в консольном окне отображается значение переменной txt. Как может выглядеть в этом случае консольное окно, показано на рисунке 3.


Рис.3. Консольное окно после отображения сообщения с текстом, введенным пользователем


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

    В этом и рассмотренном на предыдущем шаге примере с вводом значения через окно с полем ввода мы считывали текст. По часто возникает необходимость считывать значения и других типов.

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




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