枚举类型的值

4

我有点困惑:这真的是从枚举代码中读取值的唯一方法吗?

(int)Enum.Parse(typeof(MyEnum), MyEnumCode.ToString())

有些东西是如此重要,没有比获取价值更好的方式了吗?

5个回答

15

我不知道你所谓的 "Enum-Code" 是什么,但为什么不直接将其转换成 int 呢?

int value = (int)MyEnum.MyEnumCode;

7
不需要,您可以直接将其转换为整数:

不需要,您可以直接将其转换为整数:

(int)MyEnum.MyEnumCode

稍作解释,枚举类型在内部实际上是一个整数。因此强制转换是免费的。但这也意味着您可以很容易地在枚举中拥有不存在的值。例如:

MyEnum val = (MyEnum)-123544;

这是完全有效的代码。

2

您想实现什么目标?您想获取与枚举相关联的整数值吗?您只需将枚举转换为int即可...

(int)MyEnum.MyEnumCode;

1

试试这个:

int x = MyEnumCode as int;
string y = MyEnumCode.ToString();
int z = (int)MyEnumCode;

1

关于什么?

(int)MyEnumCode?

枚举的底层类型默认为 int,所以您可以直接进行强制转换。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接