Mam wyliczenie:
public enum baseKey : uint
{
HKEY_CLASSES_ROOT = 0x80000000,
HKEY_CURRENT_USER = 0x80000001,
HKEY_LOCAL_MACHINE = 0x80000002,
HKEY_USERS = 0x80000003,
HKEY_CURRENT_CONFIG = 0x80000005
}
W jaki sposób, biorąc pod uwagę ciąg HKEY_LOCAL_MACHINE
, mogę uzyskać wartość 0x80000002
na podstawie wyliczenia?
Używając Enum.TryParse nie potrzebujesz obsługi wyjątków:
źródło
źródło
Z pewną obsługą błędów ...
źródło
Ten fragment kodu ilustruje uzyskiwanie wartości wyliczenia z ciągu. Aby przekonwertować z łańcucha, musisz użyć
Enum.Parse()
metody statycznej , która przyjmuje 3 parametry. Pierwszy to typ wyliczenia, który chcesz wziąć pod uwagę. Składnia to słowo kluczowe,typeof()
po którym następuje nazwa klasy wyliczeniowej w nawiasach. Drugi parametr to łańcuch do konwersji, a trzeci parametrbool
wskazuje, czy podczas konwersji należy ignorować wielkość liter.Wreszcie należy pamiętać, że
Enum.Parse()
faktycznie zwraca referencję do obiektu, co oznacza, że musisz jawnie przekonwertować to do wymaganego typu enum (string
,int
etc).Dziękuję Ci.
źródło
Alternatywnym rozwiązaniem może być:
Lub tylko:
źródło
"HKEY_LOCAL_MACHINE"
na wartość, zgodnie z zapytaniem OP, przekonwertowałeś symbolHKEY_LOCAL_MACHINE
na wartość. Dzikie różne bestie.