c# - 如何在值共享相同名称的枚举之间进行转换?

标签 c# enums

如果我想在两个 Enum 类型之间进行转换,我希望它们的值具有相同的名称,是否有一种简洁的方法,或者我必须这样做:

enum colours_a { red, blue, green }
enum colours_b { yellow, red, blue, green }

static void Main(string[] args)
{
    colours_a a = colours_a.red;
    colours_b b;

    //b = a;
    b = (colours_b)Enum.Parse(typeof(colours_b), a.ToString());
}

?

最佳答案

如果您对这两个枚举有严格的控制,那么您的解决方案(或 Randolpho's)就可以了。

如果您不这样做,那么我会跳过尝试变得棘手并创建一个在它们之间进行转换的静态映射类。事实上,从易于维护的角度来看,无论如何我可能会推荐(即使您现在按名称映射)。

关于c# - 如何在值共享相同名称的枚举之间进行转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2692331/

相关文章:

c# - 可编辑组合框选择第一个输入的字符

java - 如何给出 Ant 任务的枚举属性的允许值列表

ios - 如何使用 self 和 enum 在 Swift 中设置条件断点的条件?

objective-c - 在 Objective-C 中使用枚举名称作为值标识符

c# - 在这种情况下 (C#) 替换开关 block 和枚举的正确方法是什么?

c# - 为什么 hash_pbkdf2 (PHP) 的输出与 .NET/C# 实现不同

c# - 使用 Twitterizer 发布推​​文

javascript - 你能在 TypeScript 类中设置静态枚举吗?

c# - Windows 8 中的透明度(Metro 应用程序)

c# - Visual Studio 11 (Metro) 中的 Magento SOAP C# 登录问题