2013-06-29 40 views
0

閃客改變簡單MessageBox代碼:MessageBox的類型轉換成int

MessageBox.Show("msg"); 

這一個:

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

兩個完美的作品。這種類型的投射是什麼意思?

+0

顯示(..)返回一個DialogResult,並枚舉併爲此 - 一個整數 –

回答

1

從C#語言規範的:

6.2.2顯枚舉轉換

顯式枚舉轉換爲:

·從字節,字節,short,ushort,int,uint,long,ulong, char,float,double或decimal到任何枚舉類型。

·從任何枚舉型到字節型,字節型,短型,ushort,int,uint, long,ulong,char,float,double或decimal。

·從任何枚舉類型到任何其他枚舉類型。

特別是,您的示例包含從DialogResultint的明確轉換。但是,上面列表中的其他類型也是允許的,無論基礎枚舉類型如何。

0

MessageBox.Show()返回DialogResult值,它是enum類型,以便該鑄造將返回基礎類型枚舉元素(缺省爲int)澆鑄int

+1

「此鑄件返回基礎類型的枚舉元素」 - 錯誤。這個投射返回'int',因爲有一個投射到'int',不是因爲基礎類型的枚舉是'int'。例如,這也是正確的:'long num =(long)MessageBox.Show(「msg」)'。 – Dennis

+0

是的,我明白,單詞的選擇很差。感謝您的糾正。 –