3

オブジェクト値を提供する外部システムがあります(この値は常にボックス化された整数型であることを知っています)。通常の方法でインクリメントしたいのですがint value += otherIntValue、コンパイラからエラーが発生します:

演算子 '+=' は型のオペランドには適用できません

例えば:

//source values i cannot to change it
object targetInt = 100;
int incrementedValue = 20;

//usual way - not works
targetInt += incrementedValue;    

//ugly workaround
targetInt = ((int) targetInt) + incrementedValue;

int と object のインスタンスを でインクリメントする方法はありますtargetInt += incrementedValue;か?

4

3 に答える 3

0

他の人が言ったように、キャストは として扱われている型を処理する正しい方法objectです。

ただし、そうは言っても、コンパイル時の型チェックなしで任意の演算子とメソッドを本当に使用したい場合は、次のdynamicキーワードを使用できます。

dynamic targetInt = 100;
int incrementedValue = 20;

targetInt += incrementedValue;
于 2013-04-17T13:20:03.930 に答える