C是B类下定义的枚举:
public enum C:uint
{
............
SHCNE_ALLEVENTS = 0x7FFFFFFF,
SHCNE_INTERRUPT = 0x80000000
}语句
case (int)C.SHCNE_ALLEVENTS:
无报错而语句
case (int)C.SHCNE_INTERRUPT:
报错:
【无法将类型“A.B.C”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?)】 请问:如何进行这种强制转换
public enum C:uint
{
............
SHCNE_ALLEVENTS = 0x7FFFFFFF,
SHCNE_INTERRUPT = 0x80000000
}语句
case (int)C.SHCNE_ALLEVENTS:
无报错而语句
case (int)C.SHCNE_INTERRUPT:
报错:
【无法将类型“A.B.C”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?)】 请问:如何进行这种强制转换
public static void Test()
{
C o = C.SHCNE_ALLEVENTS;
switch (o)
{
case C.SHCNE_ALLEVENTS:
Console.WriteLine("SHCNE_ALLEVENTS");
break;
case C.SHCNE_INTERRUPT:
Console.WriteLine("SHCNE_INTERRUPT");
break;
default:
break;
}
}public enum C : uint
{
SHCNE_ALLEVENTS = 0x7FFFFFFF,
SHCNE_INTERRUPT = 0x80000000
}
2147483647 0x7FFFFFFF
unchecked((int)0x80000000);
如果用
int o =?;
就是我报告的错误情况
不行,因为我的switch (s)中的s是int
可行,但不能使用枚举SHCNE_INTERRUPT了
这样可以了
并且
unchecked((int)(C.SHCNE_INTERRUPT))也是可以的