Результат: ученик отделяет получение текста от синтаксического и предметного разбора, безопасно учитывает завершение входного потока и использует культуру, соответствующую пользовательским или машинным данным.
Содержание:
-
Работать с консольным выводом
Console.WriteиConsole.WriteLine;- последовательность частей сообщения;
- перевод строки;
- интерполяция и форматирование ранее изученных значений;
- различие диагностического, пользовательского и машинного текста.
-
Получать строку из консоли
Console.ReadLine();- тип результата
string?; nullкак завершение входного потока;- пустая строка как отдельное полученное значение;
- проверка отсутствия до дальнейшего разбора.
-
Различить способы преобразования текста
Parseкак требование корректного формата;TryParseкак обычный проверяемый неуспех;Convertи его отдельный контракт;- выходной параметр
outбиблиотечного метода; - выбор способа по ожидаемости ошибки, а не по краткости записи.
-
Разбирать целые и дробные значения
- допустимые знаки и цифры;
- переполнение диапазона;
- десятичный разделитель;
- разбор
bool,charиenumна обзорных примерах; - проверка конечности дробного результата.
-
Управлять культурой и стилем
CultureInfo.CurrentCultureдля пользовательского ввода;CultureInfo.InvariantCultureдля машинного формата;NumberStylesкак явное множество разрешённых элементов;- совпадение культуры форматирования и разбора;
- недопустимость молчаливого смешения локалей.
-
Разделить этапы доверия
- получение строки;
- проверка
null; - проверка пустоты при необходимости;
- синтаксический разбор;
- проверка диапазона типа;
- проверка предметных ограничений;
- запуск вычисления только после полного успеха.
-
Проектировать диагностический результат
- различие причины отсутствия, формата, диапазона и предметного ограничения;
- понятное сообщение без потери исходного контекста;
- невыполнение последующих этапов после отказа;
- отсутствие частично допустимого результата.
-
Подготовить повторный запрос
- одна попытка как отдельный проход проверки;
- состояние успешного и неуспешного разбора;
- передача управления циклу повторного ввода, изучаемому в следующем разделе;
- отсутствие дублирования вычислительной логики в ветвях ввода.

