c#赋值运算符&=

Rob*_*Rob 5 c# assignment-operator

如果我有以下bool:

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

以下三行代码是否会成功存储相同的结果:

1 - success &= SomeFunctionReturningABool();

2 - success = success & SomeFunctionReturningABool();

3 - success = success && SomeFunctionReturningABool();
Run Code Online (Sandbox Code Playgroud)

我发现一篇文章说明1是2的快捷方式 - 但是2与3相同或者我的应用程序在执行此行时会爆炸...

Fyo*_*kin 8

对于布尔类型,single &计算所有操作数,而double &&仅在必要时计算(即,如果第一个操作数为false,则不打算评估第二个操作数),也称为"短路"评估.

来源:http://msdn.microsoft.com/en-us/library/2a723cdk(v = vs.80).aspx

对于&=赋值运算符,它与单个运算符相同&.