Ich habe eine Aufzählung:
public enum baseKey : uint
{
HKEY_CLASSES_ROOT = 0x80000000,
HKEY_CURRENT_USER = 0x80000001,
HKEY_LOCAL_MACHINE = 0x80000002,
HKEY_USERS = 0x80000003,
HKEY_CURRENT_CONFIG = 0x80000005
}
Wie kann ich angesichts der Zeichenfolge HKEY_LOCAL_MACHINE
einen Wert erhalten, 0x80000002
der auf der Aufzählung basiert?
Mit Enum.TryParse benötigen Sie keine Ausnahmebehandlung:
quelle
quelle
Mit etwas Fehlerbehandlung ...
quelle
Dieses Code-Snippet veranschaulicht das Abrufen eines Aufzählungswerts aus einer Zeichenfolge. Um aus einer Zeichenfolge zu konvertieren, müssen Sie die statische
Enum.Parse()
Methode verwenden, die 3 Parameter akzeptiert. Die erste ist die Art der Aufzählung, die Sie berücksichtigen möchten. Die Syntax ist das Schlüsselwort,typeof()
gefolgt vom Namen der Enum-Klasse in Klammern. Der zweite Parameter ist die zu konvertierende Zeichenfolge, und der dritte Parameter gibt anbool
, ob Sie bei der Konvertierung die Groß- und Kleinschreibung ignorieren sollten.Schließlich ist zu beachten , dass
Enum.Parse()
tatsächlich gibt einen Objektverweis, das bedeutet , Sie müssen ausdrücklich diese Art der erforderlichen Enum umwandeln (string
,int
usw.).Danke dir.
quelle
Alternative Lösung kann sein:
Oder nur:
quelle
"HKEY_LOCAL_MACHINE"
in den Wert konvertiert , wie im OP gefordert, sondern das SymbolHKEY_LOCAL_MACHINE
in den Wert konvertiert . Wild verschiedene Tiere.