Ввод значений перечислимых типов с клавиатуры — различия между версиями
Ulysses (обсуждение | вклад) (Новая страница: «В справке PascalABC.NET находится [http://pascalabc.net/downloads/pabcnethelp/index.htm#page=LangGuide/Types/enum_subrange.html статья о …») |
(нет различий)
|
Текущая версия на 11:22, 28 мая 2016
В справке PascalABC.NET находится статья о перечислимых типах. Однако она обходит стороной тонкий вопрос о том, как вводить значения перечислимого типа с клавиатуры.
Вводить значения перечислимого типа напрямую (с помощью Read) нельзя. Разумная стратегия состоит в двухходовке: 1) чтение с клавиатуры строки с помощью ReadlnString, 2) преобразование строки в значение перечислимого типа. Второй шаг можно выполнить либо с помощью «большого» case (что не очень удобно), либо с помощью эзотерических средств платформы .NET (см. ниже).
Итак, для любого перечислимого типа MyType удобно определить функцию ReadMyType чтения с клавиатуры следующим образом. Эта функция (без параметров, возвращает MyType) может содержать «большой» case либо одну «волшебную» команду:
Assert(System.Enum.TryParse&<MyType>(ReadlnString, Result),
'Введено неверное значение типа MyType');