Результат: ученик отделяет получение текста от синтаксического и предметного разбора, безопасно учитывает завершение входного потока и использует культуру, соответствующую пользовательским или машинным данным.

Содержание:

  1. Работать с консольным выводом

    • Console.Write и Console.WriteLine;
    • последовательность частей сообщения;
    • перевод строки;
    • интерполяция и форматирование ранее изученных значений;
    • различие диагностического, пользовательского и машинного текста.
  2. Получать строку из консоли

    • Console.ReadLine();
    • тип результата string?;
    • null как завершение входного потока;
    • пустая строка как отдельное полученное значение;
    • проверка отсутствия до дальнейшего разбора.
  3. Различить способы преобразования текста

    • Parse как требование корректного формата;
    • TryParse как обычный проверяемый неуспех;
    • Convert и его отдельный контракт;
    • выходной параметр out библиотечного метода;
    • выбор способа по ожидаемости ошибки, а не по краткости записи.
  4. Разбирать целые и дробные значения

    • допустимые знаки и цифры;
    • переполнение диапазона;
    • десятичный разделитель;
    • разбор bool, char и enum на обзорных примерах;
    • проверка конечности дробного результата.
  5. Управлять культурой и стилем

    • CultureInfo.CurrentCulture для пользовательского ввода;
    • CultureInfo.InvariantCulture для машинного формата;
    • NumberStyles как явное множество разрешённых элементов;
    • совпадение культуры форматирования и разбора;
    • недопустимость молчаливого смешения локалей.
  6. Разделить этапы доверия

    • получение строки;
    • проверка null;
    • проверка пустоты при необходимости;
    • синтаксический разбор;
    • проверка диапазона типа;
    • проверка предметных ограничений;
    • запуск вычисления только после полного успеха.
  7. Проектировать диагностический результат

    • различие причины отсутствия, формата, диапазона и предметного ограничения;
    • понятное сообщение без потери исходного контекста;
    • невыполнение последующих этапов после отказа;
    • отсутствие частично допустимого результата.
  8. Подготовить повторный запрос

    • одна попытка как отдельный проход проверки;
    • состояние успешного и неуспешного разбора;
    • передача управления циклу повторного ввода, изучаемому в следующем разделе;
    • отсутствие дублирования вычислительной логики в ветвях ввода.