Jak uzyskać wartość wyliczenia z string w C#?

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")

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.