为什么int.Parse对Enum值不起作用?

时间:2019-05-27 20:01:52

标签: c# .net

您能告诉我第一行如何转换为int,第二行不起作用吗?

public enum SomeEnumerator { AndHisValue, second, third }

int a = (int)(SomeEnumerator.AndHisValue);

int a = int.Parse(SomeEnumerator.AndHisValue);

AndHisValue的类型是字符串。

Image

1 个答案:

答案 0 :(得分:1)

如图所示,SomeEnumerator不是字符串类型,而是enum

string常量在它们周围用“。”表示。enum常量,例如SomeEnumerator.AndHisValue是它们自己的值类型,每个值通常都有各自不同的值。

您可以直接将任何enum值强制转换为intstring,但由于int.Parse()期望string,您不能使用枚举器值这里

(有关枚举的信息,请参见https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/enum