Dee*_*ena -1 c# boolean-logic boolean-operations
让我们说你有
class Program
{
static void Main()
{
bool a = GetFalse();
if (a)
{
a = GetTrue();
}
bool b = GetFalse();
b &= GetTrue();
}
static bool GetFalse() => (false);
static bool GetTrue() => (true);
}
Run Code Online (Sandbox Code Playgroud)
为什么GetTrue()
在b
已经错误的情况下执行?
&=
操作员是否应该认识到它永远不能评估为真?
因为x &= y
只是简写x = x & y
.&
没有短路,所以y
无论价值如何都要评估x
,即使对于bools也是如此.
对于布尔变量,具体而言,是一个短路的版本&
:&&
.&&=
但是,没有操作员,所以你需要单独完成:
b = b && GetTrue();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
62 次 |
最近记录: |