J'ai une énumération:
public enum baseKey : uint
{
HKEY_CLASSES_ROOT = 0x80000000,
HKEY_CURRENT_USER = 0x80000001,
HKEY_LOCAL_MACHINE = 0x80000002,
HKEY_USERS = 0x80000003,
HKEY_CURRENT_CONFIG = 0x80000005
}
Comment puis-je, étant donné la chaîne HKEY_LOCAL_MACHINE
, obtenir une valeur 0x80000002
basée sur l'énumération?
En utilisant Enum.TryParse, vous n'avez pas besoin de la gestion des exceptions:
la source
la source
Avec un peu de gestion des erreurs ...
la source
Cet extrait de code illustre l'obtention d'une valeur d'énumération à partir d'une chaîne. Pour convertir à partir d'une chaîne, vous devez utiliser la
Enum.Parse()
méthode statique , qui prend 3 paramètres. Le premier est le type d'énumération que vous souhaitez prendre en compte. La syntaxe est le mot-clétypeof()
suivi du nom de la classe enum entre crochets. Le deuxième paramètre est la chaîne à convertir et le troisième paramètrebool
indique si vous devez ignorer la casse lors de la conversion.Enfin, notez que
Enum.Parse()
renvoie en fait une référence d'objet, cela signifie que vous devez explicitement la convertir dans le type enum requis (string
,int
etc.).Je vous remercie.
la source
Une autre solution peut être:
Ou juste:
la source
"HKEY_LOCAL_MACHINE"
en valeur, comme l'OP l'a demandé, vous avez converti le symboleHKEY_LOCAL_MACHINE
en valeur. Des bêtes extrêmement différentes.