c# - 一次检查 3 个枚举值?

标签 c# enums

我有一个看起来像这样的枚举:

enum myEnum
{
    field1 = 11,
    field2 = 12,
    field3 = 33
};

在我的代码中,根据我的变量,我需要说 field1 是 1,field2 是 2,field3 是 3。此变量为 1 或 2 或 3;这是一个整数。我可以把它写成一行吗?类似于以下内容,但更短...

if(myVar == 1)
    SomeMethod(myEnum.field1)
...

谢谢:-)

最佳答案

(myEnum) Enum.Parse(typeof(myEnum), "field" + myVar);

编辑:想一想,您可能想将其包装在 try/catch (ArgumentException) 中,以防 myVar 的枚举中没有值 给出,除非你能保证这永远不会发生。

另一个编辑:考虑一下,如果只有三个值,您可以这样做:

myVar == 1 ? myEnum.field1 : myVar == 2 ? myEnum.field2 : myEnum.field3;

但是,这会将 1 或 2 以外的任何值都视为 3,但如果能保证这一点,那应该不是问题。

关于c# - 一次检查 3 个枚举值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3281508/

相关文章:

python - 如何在 SQLAlchemy 中创建 ENUM?

java - 关于java中枚举的帮助

c# - MSB0001 : Internal MSBuild Error: Throwing from logger shutdown

c# - 创建服务以根据用户 session 确定字符串格式

c# - EF Code First 数据库不是使用 MVC3 生成的

c# - InspirationContext 不持久化内容

java - 为什么 if 语句检测不到我的游戏状态

java - 如何在Java中包装多个方法?枚举不是正确的方法吗?

google-apps-script - 如何在 google apps 脚本中使用 DeveloperMetadataVisibility 枚举?

c# - SqlCommand INSERT INTO 从 datagridview 到 SQL DB 表