Eu tenho um enum:
public enum baseKey : uint
{
HKEY_CLASSES_ROOT = 0x80000000,
HKEY_CURRENT_USER = 0x80000001,
HKEY_LOCAL_MACHINE = 0x80000002,
HKEY_USERS = 0x80000003,
HKEY_CURRENT_CONFIG = 0x80000005
}
Como posso, dado o barbante HKEY_LOCAL_MACHINE
, obter um valor com 0x80000002
base no enum?
Usando Enum.ExperimenteParse, você não precisa do tratamento de exceções:
fonte
fonte
Com algum tratamento de erros ...
fonte
Este trecho de código ilustra a obtenção de um valor enum de uma string. Para converter de uma string, você precisa usar o
Enum.Parse()
método estático , que usa 3 parâmetros. O primeiro é o tipo de enum que você deseja considerar. A sintaxe é a palavra-chavetypeof()
seguida pelo nome da classe enum entre colchetes. O segundo parâmetro é a string a ser convertida e o terceiro parâmetro é umabool
indicação se você deve ignorar maiúsculas e minúsculas ao fazer a conversão.Por fim, observe que,
Enum.Parse()
na verdade, retorna uma referência de objeto, o que significa que você precisa converter isso explicitamente para o tipo de enum necessário (string
,int
etc).Obrigado.
fonte
A solução alternativa pode ser:
Ou apenas:
fonte
"HKEY_LOCAL_MACHINE"
para o valor, como o OP pediu, você converteu o símboloHKEY_LOCAL_MACHINE
para o valor. Bestas totalmente diferentes.