c#从long解析枚举
我有一个从long继承的枚举,并将其用作我的应用程序中的标志 我刚刚注意到,我无法解析大于int.MaxValue的值,我是做错了还是不支持 例如c#从long解析枚举,c#,enums,long-integer,C#,Enums,Long Integer,我有一个从long继承的枚举,并将其用作我的应用程序中的标志 我刚刚注意到,我无法解析大于int.MaxValue的值,我是做错了还是不支持 例如 你知道如何得到正确的结果吗?这样做,你就会明白问题的原因:Console.WriteLine((int)A.Blue)。现在编写Blue=1L这样做,您将看到问题的原因:Console.WriteLine((int)A.Blue)。现在写入Blue=1L using System; public class Program { public
你知道如何得到正确的结果吗?这样做,你就会明白问题的原因:
Console.WriteLine((int)A.Blue)代码>。现在编写Blue=1L这样做,您将看到问题的原因:Console.WriteLine((int)A.Blue)代码>。现在写入Blue=1L
using System;
public class Program
{
public static void Main()
{
foreach (var option in Enum.GetValues(typeof (A))) {
Console.WriteLine((long)option + " = " + option);
}
foreach (var option in Enum.GetNames(typeof(A))) {
var name = option;
var val = Enum.Parse(typeof(A),name);
Console.WriteLine(option + " is " + ((long)val));
}
}
public enum A : long {
Red = 1 << 0,
Blue = 1 << 32,
Green = 1 << 33
}
}
1 = Blue
1 = Blue
2 = Green
Red is 1
Blue is 1
Green is 2