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;

仅仅因为赋值运算符的左侧必须是变量、属性或索引器,而不是另一个表达式,就像你的演员一样。

但是,您的第二个示例的作业是这样写的:

x_con -= y_con;

这当然很好,因为x_con它是一个变量。

于 2012-06-25T07:16:31.050 回答
0

如果您尝试在赋值运算符的左侧执行算术运算,也会发生此错误。有关详细信息,请参阅语句、表达式和运算符(C# 编程指南)

于 2012-06-25T07:20:42.693 回答