Ввод значений перечислимых типов с клавиатуры
В справке PascalABC.NET находится статья о перечислимых типах. Однако она обходит стороной тонкий вопрос о том, как вводить значения перечислимого типа с клавиатуры.
Вводить значения перечислимого типа напрямую (с помощью Read) нельзя. Разумная стратегия состоит в двухходовке: 1) чтение с клавиатуры строки с помощью ReadlnString, 2) преобразование строки в значение перечислимого типа. Второй шаг можно выполнить либо с помощью «большого» case (что не очень удобно), либо с помощью эзотерических средств платформы .NET (см. ниже).
Итак, для любого перечислимого типа MyType удобно определить функцию ReadMyType чтения с клавиатуры следующим образом. Эта функция (без параметров, возвращает MyType) может содержать «большой» case либо одну «волшебную» команду:
Assert(System.Enum.TryParse&<MyType>(ReadlnString, Result),
'Введено неверное значение типа MyType');