このエラー:
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;
簡単な質問です。なんで?
このエラー:
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;
簡単な質問です。なんで?
これだけで失敗した場合、 なしz
:
(double)x -= (double)y;
代入演算子の左側は変数、プロパティ、またはインデクサーでなければならず、キャストのような別の式ではないという理由だけです。
ただし、2番目の例では、割り当てが次のように記述されています。
x_con -= y_con;
x_con
変数であるため、もちろん問題ありません。
このエラーは、代入演算子の左側で算術演算を実行しようとした場合にも発生する可能性があります。詳細については、ステートメント、式、および演算子 (C# プログラミング ガイド)を参照してください。