Tengo una enumeración:
public enum baseKey : uint
{
HKEY_CLASSES_ROOT = 0x80000000,
HKEY_CURRENT_USER = 0x80000001,
HKEY_LOCAL_MACHINE = 0x80000002,
HKEY_USERS = 0x80000003,
HKEY_CURRENT_CONFIG = 0x80000005
}
¿Cómo puedo, dada la cadena HKEY_LOCAL_MACHINE
, obtener un valor 0x80000002
basado en la enumeración?
Usando Enum.TryParse no necesita el manejo de excepciones:
fuente
fuente
Con algún manejo de errores ...
fuente
Este fragmento de código ilustra la obtención de un valor de enumeración de una cadena. Para convertir de una cadena, debe usar el
Enum.Parse()
método estático , que toma 3 parámetros. El primero es el tipo de enumeración que desea considerar. La sintaxis es la palabra clavetypeof()
seguida del nombre de la clase enum entre paréntesis. El segundo parámetro es la cadena que se va a convertir, y el tercer parámetrobool
indica si debe ignorar las mayúsculas y minúsculas mientras realiza la conversión.Finalmente, tenga en cuenta que en
Enum.Parse()
realidad devuelve una referencia de objeto, lo que significa que debe convertirlo explícitamente al tipo de enumeración requerido (string
,int
etc.).Gracias.
fuente
La solución alternativa puede ser:
O solo:
fuente
"HKEY_LOCAL_MACHINE"
en el valor, como pidió el OP, convirtió el símboloHKEY_LOCAL_MACHINE
en el valor. Bestias tremendamente diferentes.