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 へ。

· 任意の列挙型から他の列挙型へ。

特に、サンプルには からDialogResultへの明示的な変換が含まれていintます。ただし、基になる列挙型に関係なく、上記のリストの他の型も許可されます。

于 2013-06-29T05:39:20.643 に答える
0

MessageBox.Show()DialogResult型である値を返すenumため、このキャストは列挙要素の基になる型を返します (デフォルトはint) にキャストされますint

于 2013-06-29T05:36:41.537 に答える