c# - 如何从 C# 中的字符串获取枚举值?

标签 c# enums

我有一个枚举:

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

最佳答案

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")

关于c# - 如何从 C# 中的字符串获取枚举值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1578775/

相关文章:

c# - mvc3 RedirectToAction

enums - 向枚举添加函数

java - 如何编写从字符串到枚举的良好转换?

c# - 有没有比将图像保存到流来计算它在磁盘上有多大的不同方法?

c# - Mysql 查询 datagridview C#

c# - 命名空间 'Optimization' 中不存在类型或命名空间名称 'System.Web'

javascript - 尝试使用 Object.entries<T>(Enum).map() 映射 TS 中的枚举,但仅适用于基于字符串的枚举?

c++ - 我应该使用#define、枚举还是常量?

android - json 枚举反序列化破坏了 kotlin 空安全

c# - .Net 中的清理与内存回收