0

反编译器更改了简单MessageBox代码:

MessageBox.Show("msg");

对此:

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

两者都完美无缺。这种类型转换是什么意思?

4

2 回答 2

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。

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

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

于 2013-06-29T05:39:20.643 回答
0

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

于 2013-06-29T05:36:41.537 回答