C#中的多个赋值语法

Sim*_*mon 2 .net c# asp.net asp.net-mvc

我在几个代码示例中看到了以下语法,它看起来非常明显,但不是在我看到它的上下文中,所以有人确认

var x = 1
var y = 2
var z = 3

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

所以在本质上这是否意味着x和y都等于z?

试图谷歌这个,并找不到语法,也看了murach .net书籍没有运气

p.s*_*w.g 6

赋值运算符返回值被分配,因为它的结果

赋值运算符(=)将其右侧操作数的值存储在由其左侧操作数表示的存储位置,属性或索引器中,并将该值作为结果返回.

所以

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

被解析为

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

而这相当于

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

最后,x和,y被赋予相同的值z(在这种情况下3).

  • @ AD.Net不,严格来说,由于确切的语义.如果在将`z`分配给`y`时运行隐式转换运算符,则转换后的值将分配给`x`,即使直接将`z`分配给`x`也不会运行隐式转换运算符. (2认同)