Mam następujące wyliczenie:
public enum baseKey : uint
{
HKEY_CLASSES_ROOT = 0x80000000,
HKEY_CURRENT_USER = 0x80000001,
HKEY_LOCAL_MACHINE = 0x80000002,
HKEY_USERS = 0x80000003,
HKEY_CURRENT_CONFIG = 0x80000005
}
Jak mogę, biorąc pod uwagę ciąg HKEY_LOCAL_MACHINE, uzyskać wartość 0x80000002 na podstawie wyliczenia?
1 odpowiedź
baseKey choice;
if (Enum.TryParse("HKEY_LOCAL_MACHINE", out choice)) {
uint value = (uint)choice;
// „value” jest tym, czego szukasz
} else { /*błąd: ciąg nie był członkiem wyliczającym*/
Przed wersją .NET 4.5 trzeba było wykonać następujące czynności, które są bardziej podatne na błędy i zgłaszają wyjątek po przekazaniu niepoprawnego ciągu:
(uint)Enum.Parse(typeof(baseKey), "HKEY_LOCAL_MACHINE")