0

少し変わった質問ですが、数値型をキャストするときにキャスト エラーが発生しません。「値が短すぎます」などのエラーが発生する必要がありますが、C#はそれを非常によく保護しているようです。キャストに失敗する簡単なコードを教えてください。(スタックオーバーフローのように..)

4

3 に答える 3

4

checkedキーワードを使用して、整数型変換のオーバーフローを明示的にチェックできます。

int i = int.MaxValue;
short s = checked((short)i);

また、チェック済み変換をデフォルトにすることができるチェック済みコンパイラ フラグもあります。

于 2012-08-05T13:06:33.493 に答える
0

キャストに失敗する簡単なコードを教えてください。

int i = 400;
object o = i; // here o will be System.Int32 automatically

string s = (string)o; //Runtime Exception thrown System.InvalidCastException:
于 2012-08-05T13:09:43.910 に答える
0

エラー処理コードを書き込もうとしているようです。コンパイラは不適切なキャストを監視するという素晴らしい仕事をしますが、ランタイム例外を探している場合:

short y = short.Parse("56789");

これは をスローしOverflowExceptionます。

OverflowException: 値が Int16 に対して大きすぎるか小さすぎます。

于 2012-08-05T13:10:34.053 に答える