おはよう!私は2バイトの変数を追加しようとしていて、奇妙な結果に気づいた。バイト+バイト=不明結果
byte valueA = 255;
byte valueB = 1;
byte valueC = (byte)(valueA + valueB);
Console.WriteLine("{0} + {1} = {2}", valueA.ToString(),
valueB.ToString(),
valueC.ToString());
私はプログラムを実行しようとしたとき、それは、上記のコードに何が起こった
255 + 1 = 0
を表示しますか?なぜコンパイラはOverflowException
を投げないのですか?どうすれば例外をキャッチできますか?私はVBの男であり、ゆっくりとC#に移行しています:)質問には申し訳ありません。
さて、あなたのコードがオーバーフローしません。それはキャスト中にビットを破棄しますが、あなたはそれを明示的に要求しました。 –