2

このエラー:

double z;
int? x = 0;
int? y = 0;

z = (double)x -= (double)y;

..これはエラーになりません:

double z;
int? x = 0;
int? y = 0;

double x_con = (double)x;
double y_con = (double)y;

z = x_con -= y_con;

簡単な質問です。なんで?

4

2 に答える 2

5

これだけで失敗した場合、 なしz:

(double)x -= (double)y;

代入演算子の左側は変数、プロパティ、またはインデクサーでなければならず、キャストのような別の式ではないという理由だけです。

ただし、2番目の例では、割り当てが次のように記述されています。

x_con -= y_con;

x_con変数であるため、もちろん問題ありません。

于 2012-06-25T07:16:31.050 に答える
0

このエラーは、代入演算子の左側で算術演算を実行しようとした場合にも発生する可能性があります。詳細については、ステートメント、式、および演算子 (C# プログラミング ガイド)を参照してください。

于 2012-06-25T07:20:42.693 に答える