我以前从来没有遇到过这样的说法,有谁能告诉我它的作用吗?
Form = CardForm = MainForm;这是一个桌面应用程序(我是桌面应用程序的新手)
谢谢
发布于 2013-04-11 00:29:55
假设Form、CardForm和MainForm是变量...
它有2个赋值运算符,赋值运算符是唯一的,因为它们是从右到左计算的。
首先,它将CardForm设置为MainForm,然后将Form设置为CardForm = MainForm的结果
发布于 2013-04-11 02:42:54
到目前为止,所有的答案都包含细微的错误。让我在这里直截了当地说。
形式的链式赋值表达式的语义
x = y = z包括:
总而言之,这具有以下语义:
side effects of x
side effects of y
side effects of z
z1 = value of z converted to type of y
y = z1
z2 = value of z1 converted to type of x
x = z2其他一些答案试图告诉你,x = y = z;的语义只是y = z; x = y;的语义,这是完全错误的。在该程序中,y和z副作用发生在x的副作用之前,且在该程序中,y是从其中读取的。在x = y = z;中,这两种情况都不成立。
发布于 2013-04-11 00:30:18
在C#以及许多其他语言中,为变量赋值的操作返回一个值本身。这称为表达式的逻辑值(或l值)。
假设您想要设置五个变量:
int a, b, c, d, e;数字5。你可以这样做:
a = b = c = d = e = 5;表达式e = 5的值为5,该值将被设置为d。d = 5的值为5,该值将设置为c。c = 5的值为5,该值将设置为b。b = 5的值为5,该值将设置为a。然后,a将被设置为5。
因为我们不知道Card、CardForm和MainForm的类型,所以我们不能确切地告诉你代码将做什么,因为类型可以定义隐式转换,并且被覆盖的赋值操作符可以返回任何感觉上的值(当然是那种类型)。
表达式:
CardForm = MainForm有一个逻辑值,即最终分配给CardForm的值。最有可能的是,CardForm将被设置为MainForm的值,并且该表达式本身将返回CardForm的新值,该值随后将被设置为Form。
https://stackoverflow.com/questions/15931390
复制相似问题