C#逻辑问题

gra*_*ady 0 c# boolean-logic

我有那些布尔值:

bool test = false && true || true; // true
bool test1 = false && (true || true); // false
Run Code Online (Sandbox Code Playgroud)

现在,任何人都能解释为什么会这样吗?那些不一样吗?

谢谢 :)

Dar*_*rov 11

&&运算符优先于|| 意思是你的第一个表达式相当于:

bool test = (false && true) || true;
Run Code Online (Sandbox Code Playgroud)

这使:

bool test = false || true;
Run Code Online (Sandbox Code Playgroud)

这使:

bool test = true;
Run Code Online (Sandbox Code Playgroud)

在第二种情况下,您明确地对操作数进行分组:

bool test1 = false && (true || true);
Run Code Online (Sandbox Code Playgroud)

这使:

bool test1 = false && true;
Run Code Online (Sandbox Code Playgroud)

这使:

bool test1 = false;
Run Code Online (Sandbox Code Playgroud)