Decompiler更改了简单的MessageBox
代码:
MessageBox.Show("msg");
对此:
int num = (int) MessageBox.Show("msg");
两者都很完美。这种铸造是什么意思?
答案 0 :(得分:1)
来自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
到int
的显式转换。但是,无论基础枚举类型如何,也允许上面列表中的其他类型。
答案 1 :(得分:0)
MessageBox.Show()
返回DialogResult
类型enum
的值,因此此转换返回枚举元素的基础类型(默认为int
),并将其转换为int