我有一个枚举:
public enum baseKey : uint
{
HKEY_CLASSES_ROOT = 0x80000000,
HKEY_CURRENT_USER = 0x80000001,
HKEY_LOCAL_MACHINE = 0x80000002,
HKEY_USERS = 0x80000003,
HKEY_CURRENT_CONFIG = 0x80000005
}
在给定字符串HKEY_LOCAL_MACHINE
的情况下,如何根据枚举获得值0x80000002
?
发布于 2009-10-16 15:25:33
baseKey choice;
if (Enum.TryParse("HKEY_LOCAL_MACHINE", out choice)) {
uint value = (uint)choice;
// `value` is what you're looking for
} else { /* error: the string was not an enum member */ }
在.NET 4.5之前,您必须执行以下操作,这更容易出错,并且在传递无效字符串时会抛出异常:
(uint)Enum.Parse(typeof(baseKey), "HKEY_LOCAL_MACHINE")
发布于 2013-02-21 19:08:15
使用Enum.TryParse,你不需要异常处理:
baseKey e;
if ( Enum.TryParse(s, out e) )
{
...
}
发布于 2009-10-16 15:25:50
var value = (uint) Enum.Parse(typeof(baseKey), "HKEY_LOCAL_MACHINE");
https://stackoverflow.com/questions/1578775
复制相似问题