C#布尔表达式

时间:2010-01-07 10:44:14

标签: c# boolean expression

在下面的例子中,每次都会设置'foo'?我在网上搜索过,但我找不到能给我答案的地方:

static void Main(string[] args) {
   static public bool abc = true;
   static public bool foo = (abc = false);
   foo = (abc = true);
}

4 个答案:

答案 0 :(得分:8)

第一次

false,第二次true。请记住=是赋值运算符:它将第二个操作数的值赋给第一个操作数,然后返回该值。例如:

int foo = 1;
int bar = (foo = 2);

此处的第二行将2分配给foo,然后将2返回给另一个赋值运算符,该运算符将2分配给bar。最后,foobar的值均为2.

编辑:这就是将分配操作链接起来的原因; e.g。

int foo;
int bar;
foo = bar = 2; // Equivalent to foo = (bar = 2);

答案 1 :(得分:2)

使用==而不是=表示布尔表达式。

答案 2 :(得分:2)

  1. abc = true
  2. abc = false。然后foo = false
  3. abc = true。然后foo = true

答案 3 :(得分:0)

您的静态变量定义应放在类级别,而不是放在方法内。在这种情况下,初始化器将按照它们在源代码中定义的顺序运行。

这意味着首先将abc设置为true,然后将foo设置为false,因为abc为true。