Form = Form = Form,声明做什么?

Bud*_*phy 0 c# .net-4.0 winforms

我之前从未遇到过这种类型的陈述,任何人都可以启发我的功能.

Form = CardForm = MainForm;
Run Code Online (Sandbox Code Playgroud)

这是一个桌面应用程序(我通常是桌面应用程序的新手)

谢谢

Eri*_*ert 17

到目前为止,所有答案都包含微妙的错误.让我在这里直接记录.

表单的链式赋值表达式的语义

x = y = z
Run Code Online (Sandbox Code Playgroud)

是:

  • 评估第一表达式x,y和z,并且按顺序产生它们的副作用(如果有的话).

  • 其次,通过评估z产生的值被转换为与表达式y相关联的类型.将此值称为z1.请注意,这可能不是z的值; 可能涉及转换.

  • 第三,执行将z1分配给y的副作用.

  • 第四,z1被转换为与表达式x相关联的类型.将此值调用为z2.同样,z2不必与z1或z相同.

  • 第五,z2被分配给x.

总结一下,这有以下语义:

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
Run Code Online (Sandbox Code Playgroud)

一些其他的答案都试图告诉你的语义x = y = z;仅仅是那些y = z; x = y;这是完全错误的.在该程序中,y和z的副作用发生 x的那些之前,并且在该程序中,y被读取.这些都不是真的x = y = z;.

  • `+ 1` - 这应该是公认的答案. (2认同)