У меня есть перечисление:
public enum baseKey : uint
{
HKEY_CLASSES_ROOT = 0x80000000,
HKEY_CURRENT_USER = 0x80000001,
HKEY_LOCAL_MACHINE = 0x80000002,
HKEY_USERS = 0x80000003,
HKEY_CURRENT_CONFIG = 0x80000005
}
Как я могу, учитывая строку HKEY_LOCAL_MACHINE
, получить значение 0x80000002
на основе перечисления?
Используя Enum.TryParse, вам не нужна обработка исключений:
источник
источник
С некоторой обработкой ошибок ...
источник
Этот фрагмент кода иллюстрирует получение значения перечисления из строки. Для преобразования из строки нужно использовать статический
Enum.Parse()
метод, который принимает 3 параметра. Первый - это тип перечисления, который вы хотите рассмотреть. Синтаксис - это ключевое слово,typeof()
за которым следует имя класса перечисления в скобках. Второй параметр - это строка, которая должна быть преобразована, а третий параметрbool
указывает, следует ли игнорировать регистр при выполнении преобразования.Наконец, обратите внимание, что
Enum.Parse()
фактически возвращает ссылку на объект, а это означает, что вам нужно явно преобразовать ее в требуемый тип перечисления (string
иint
т. Д.).Спасибо.
источник
Альтернативным решением может быть:
Или просто:
источник
"HKEY_LOCAL_MACHINE"
в значение, как просил OP, вы преобразовали символHKEY_LOCAL_MACHINE
в значение. Дико разные звери.