反编译器更改了简单MessageBox
代码:
MessageBox.Show("msg");
对此:
int num = (int) MessageBox.Show("msg");
两者都完美无缺。这种类型转换是什么意思?
来自 C# 语言规范:
6.2.2 显式枚举转换
显式枚举转换为:
· 从 sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double 或 decimal 到任何枚举类型。
· 从任何枚举类型到 sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double 或 decimal。
· 从任何枚举类型到任何其他枚举类型。
特别是,您的示例包含从DialogResult
to的显式转换int
。但也允许上面列表中的其他类型,无论底层枚举类型如何。
MessageBox.Show()
返回类型的DialogResult
值,enum
因此此转换返回您枚举元素的基础类型(默认为int
)转换为int