Xen*_*ate 0 c# expression boolean
在下面的例子中,每次都会设置'foo'是什么?我在网上搜索过但我找不到能给我答案的地方:
static void Main(string[] args) {
static public bool abc = true;
static public bool foo = (abc = false);
foo = (abc = true);
}
Run Code Online (Sandbox Code Playgroud)
false第一次和true第二次.请记住,这=是赋值运算符:它将第二个操作数的值赋给第一个操作数,然后返回该值.例如:
int foo = 1;
int bar = (foo = 2);
Run Code Online (Sandbox Code Playgroud)
这里的第二行将2分配给foo,然后将2返回给另一个赋值运算符,该运算符将2分配给bar.在这一切,都结束foo,并bar拥有价值2.
编辑:这就是为什么链接赋值操作是有效的; 例如
int foo;
int bar;
foo = bar = 2; // Equivalent to foo = (bar = 2);
Run Code Online (Sandbox Code Playgroud)