1. ホーム
  2. c#

[解決済み] 算術演算の結果、オーバーフローが発生しました。(整数の足し算)

2022-01-30 18:49:34

質問

このエラーが理解できません。

この SetVolume メソッドの呼び出しでは。 ボリューム = 2055786000 であり サイズ = 93552000. VolumeはIntegerプロパティで、sizeもIntegerであることがおわかりいただけると思います。

このクラスはdbmlエンティティクラスの部分クラスですが、このVolumeプロパティはデータベースのカラムではなく、部分クラスの中にのみ、quot; business object property"として存在しているのです。

詳細表示 を表示します。

データ項目 : インデックス化されたプロパティを評価するためには、そのプロパティは修飾されていなければならず、引数はユーザーによって明示的に供給されなければならない。

何が原因なのでしょうか...?

解決方法は?

整数の最大値(符号あり)は 2147483647 . この値がオーバーフローした場合、例外が発生し、プログラムの予期せぬ動作を防止します。

もし、その例外が発生しないのであれば、値が -2145629296 に対して Volume これは、おそらく望まれていないことでしょう。

解決策 を使用します。 Int64 をボリュームに使用します。最大値で 9223372036854775807 の方が安全でしょう。