c#enum GetValue()方法

c#enum GetValue()方法,c#,enums,C#,Enums,我正在编写一些用c#编写的代码。有一个枚举,例如定义为: namespace abc { public enum XYZ { a=0, b=1, } } 现在,代码中有一个变量,例如XYZ enum类型的x和一行: var y=x.GetValue(); 现在,当x为0,即“a”时,代码正常工作,y被指定为“a”。但是当它为1时,代码崩溃。我试图搜索方法“GetValue”,但找不到太多文献。同样在枚举定义中,“b=1”后面的逗号是

我正在编写一些用c#编写的代码。有一个枚举,例如定义为:

namespace abc
{
    public enum XYZ
    {
         a=0,
         b=1,
    }
}
现在,代码中有一个变量,例如XYZ enum类型的x和一行:

var y=x.GetValue();

现在,当x为0,即“a”时,代码正常工作,y被指定为“a”。但是当它为1时,代码崩溃。我试图搜索方法“GetValue”,但找不到太多文献。同样在枚举定义中,“b=1”后面的逗号是否正确?请帮助我。

XYZ
是一个枚举,它没有值,您需要从中获取所需条目的值

var y = XYZ.a
枚举将一个值绑定到一个枚举,如果您希望使用另一种方式,最好使用
字典
,或
键值对
列表

编辑:根据注释,如果确实要使用枚举,可以像这样“向后”访问它,从枚举中获取密钥:

enum WeekDays { Sun = 1, Mon = 2, Tue, Wed, Thu, Fri, Sat };
public void Main(string[] args)
{
    Console.WriteLine(
                     ((WeekDays)2).ToString()
                     ); //Prints "Mon"
}

你说的“代码崩溃”到底是什么意思?有例外吗?请显示一个简短但完整的程序来演示此问题。“XYZ”不包含“GetValue”的定义,并且没有扩展方法“GetValue”接受类型为“XYZ”的第一个参数。错误是“System.Collections.Generic.KeyNotFoundException”类型的第一次意外异常发生在System.Web.Mvc.dll中”你能给我一些关于这个GetValue()方法的链接吗?“在枚举定义中,也是“b=1”后面的逗号好的,是的,它的法定代码。C#enum只是
int
在引擎盖下。变量x有一些值,比如0。现在,我认为代码打算通过GetValue()方法将x的字符串值“a”赋予y。我对这个方法不太了解(或者说c#,我刚刚开始使用c#)。@whoisj不完全正确,你可以将它们定义为不同的底层类型,比如
enum foo:byte{x,y,z}
@Kaelan Fouwels,代码是由其他人编写的,是一个相当大的项目,我不想通过用dictionary替换enum来改变结构太多。