Ввод значений перечислимых типов с клавиатуры — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Новая страница: «В справке 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');