形式=形式=形式,语句是做什么的

本文关键字:形式 什么 语句 | 更新日期: 2023-09-27 18:08:24

我从来没有遇到过这种类型的语句,谁能告诉我它的作用吗?

Form = CardForm = MainForm;

这是一个桌面应用程序(我对桌面应用程序很陌生)

谢谢

形式=形式=形式,语句是做什么的

到目前为止,所有的答案都包含细微的错误。让我把话说清楚。

形式为 的链式赋值表达式的语义
x = y = z

:

  • 计算第一个表达式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

其他一些答案试图告诉你x = y = z;的语义只是y = z; x = y;的语义,而CC_2是完全错误的。在该程序中,y和z的副作用发生在 x的副作用之前,并且在该程序中,从读取y。

在c#以及许多其他语言中,为变量赋值的行为本身返回一个值。这称为表达式的逻辑值(或l-value)。

假设您想设置五个变量:

int a, b, c, d, e;

到数字5。你可以这样做:

a = b = c = d = e = 5;

表达式e = 5的值为5,将其设置为dd = 5的值为5,将其设置为cc = 5的值为5,将其设置为bb = 5的值为5,将其设置为a。然后将a设置为5

由于我们不知道CardCardFormMainForm的类型,因此我们无法确切地告诉您代码将做什么,因为类型可以定义隐式转换,并且重写赋值操作符可以返回任何感觉的值(当然是该类型)。

表达式:

CardForm = MainForm

具有逻辑值,该值为最终分配给CardForm的值。最有可能的是,CardForm将被设置为MainForm的值,并且该表达式本身将返回CardForm值,然后将其设置为Form

假设FormCardFormMainForm为变量…

有两个赋值操作符,赋值操作符的唯一之处在于它们从右向左求值

首先将CardForm设置为x = y = z;0,然后将Form设置为CardForm = MainForm的结果

给定Form, CardFormMainForm实际上是变量,尽管由于命名约定不太可能建议它们使用camelCase:

=运算符可以传递地使用,因此该语句相当于(非常粗略,详细信息请参阅https://stackoverflow.com/a/15931435/17713和注释!):

CardForm = MainForm;
Form = MainForm;

注意=右操作符(赋值顺序)。

=不能在c#中重载。因此,它必须是一个分配,并且这一行没有特定于桌面应用程序的方面。

参见:http://msdn.microsoft.com/en-us/library/sbkb459w.aspx

相关文章: