逆コンパイラは単純なMessageBox
コードを変更しました:
MessageBox.Show("msg");
これに:
int num = (int) MessageBox.Show("msg");
どちらも完璧に機能します。この型キャストはどういう意味ですか?
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
ます。ただし、基になる列挙型に関係なく、上記のリストの他の型も許可されます。
MessageBox.Show()
DialogResult
型である値を返すenum
ため、このキャストは列挙要素の基になる型を返します (デフォルトはint
) にキャストされますint