MessageBox类型转换为int

时间:2013-06-29 05:32:37

标签: c# casting .net-4.5

Decompiler更改了简单的MessageBox代码:

MessageBox.Show("msg");

对此:

int num = (int) MessageBox.Show("msg");

两者都很完美。这种铸造是什么意思?

2 个答案:

答案 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。

     

·从任何枚举类型到任何其他枚举类型。

特别是,您的示例包含从DialogResultint的显式转换。但是,无论基础枚举类型如何,也允许上面列表中的其他类型。

答案 1 :(得分:0)

MessageBox.Show()返回DialogResult类型enum的值,因此此转换返回枚举元素的基础类型(默认为int),并将其转换为int