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

    На этом шаге мы рассмотрим организацию чтения чисел.

    При считывании введенного пользователем значения с помощью метода ReadLine() (при консольном вводе) или метода InputBox() (при вводе через поле в диалоговом окне) значение, введенное пользователем, считывается как текст - даже если это число. Проще говоря, если пользователь введет, например, целочисленное значение, то считано оно будет как текст, состоящий из цифр (это называется текстовое представление числа). Чтобы "извлечь" из такого текста число, необходимо использовать специальные методы. Для получения целочисленного значения на основе его текстового представления используют статический метод Parse() из структуры Int32 (структура относится к пространству имен System).


В языке C# структура является аналогом класса. Во всяком случае, различия между ними в основном "технические". Мы будем детально обсуждать и классы, и структуры.

    Аргументом методу передается текстовое представление числа, а результатом метод возвращает собственно число, "спрятанное" в тексте. Небольшой пример считывания целочисленного значения с помощью диалогового окна с полем ввода представлен в примере ниже. Программа, которая представлена там, при выполнении отображает диалоговое окно с полем ввода, в которое пользователю предлагается ввести год своего рождения. Год рождения считывается, и на основе этой информации вычисляется возраст пользователя. А теперь рассмотрим код программы.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualBasic;
using System.Windows.Forms;

namespace pr13_1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Текстовые переменные: 
            string res, txt;
            // Целочисленные переменные: 
            int year = 2020, age, born;
            // Отображение окна с полем ввода:
            res = Interaction.InputBox("В каком году Вы родились?", "Год рождения");
            // Преобразование текста в число: 
            born = Int32.Parse(res);
            // Вычисление возраста: 
            age = year - born;
            txt = "Тогда Вам " + age + " лет";
            // Окно с сообщением:
            MessageBox.Show(txt, "Возраст");
        }
    }
}
Архив проекта можно взять здесь.

    В программе подключаются пространства имен System, Microsoft.VisualBasic и System.Windows.Forms. В главном методе объявляются текстовые переменные res и txt (команда string res, txt). Также объявляются три целочисленные переменные year, age и born (команда int year=2020, age, born), причем переменной year сразу присваивается значение 2020. Для определения типа мы использовали идентификатор int, обозначающий целочисленный тип: переменные такого типа значением могут принимать целые числа.


Можно объявлять сразу несколько переменных одного типа. В таком случае указывается идентификатор типа переменных, и затем через запятую перечисляются эти переменные. В случае необходимости части из них (или всем переменным) могут присваиваться значения.

    Командой

  res = Interaction.InputBox(, );
отображается окно с полем ввода. Первый аргумент метода InputBox() определяет текст, отображаемый в диалоговом окне сверху над полем ввода, а второй аргумент метода задает название диалогового окна. Как выглядит окно, показано на рисунке 1.


Рис.1. Диалоговое окно с полем для ввода целого числа

    Введенное пользователем число в виде текстового значения запоминается с помощью переменной res. Для получения числового значения мы используем команду

  born = Int32.Parse(res);
В результате в переменную born записывается целое число, введенное пользователем, причем сохраняется это значение именно как число, поэтому с ним можно выполнять арифметические операции.
Если пользователь введет в поле диалогового окна не число, то при попытке преобразовать введенный текст в целое число возникнет ошибка. Она также возникает, если пользователь нажмет вместо кнопки ОК кнопку Отмена.

    Для вычисления возраста пользователя выполняется команда

  age = year - born;
Переменной age, находящейся слева от оператора присваивания, присваивается значение выражения, находящегося в правой части от оператора присваивания. А в правой части вычисляется разность значений переменных year (текущий год) и born (год рождения). После вычисления значения переменной age она используется в команде
  txt = "Тогда Вам " + age + " лет";  ,
которой определяется текстовое значение, запоминаемое с помощью переменной txt. В правой части от оператора присваивания указано выражение "Тогда Вам " + age + " лет". Значением выражения является текст, получающийся объединением текстового фрагмента "Тогда Вам ", значения переменной age и текста " лет". Наконец, командой
  MessageBox.Show(txt, "Возраст");
отображается диалоговое окно с названием Возраст, в котором есть сообщение с текстом, определяемым переменной txt. Как может выглядеть такое окно, показано на рисунке 2.


Рис.2. Диалоговое окно с сообщением, содержащим возраст пользователя

    После закрытия диалогового окна выполнение программы завершается.

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




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