Bitwise AND如何与布尔值交互?

时间:2014-04-10 14:07:46

标签: c# bit-manipulation bitwise-and

我遇到了一段我无法解决的代码:

public void Connect()
{
    if (!(!string.IsNullOrEmpty(_vpnConnectionName) & !string.IsNullOrEmpty(_ipToPing)))
    {
        return;
    }

    GetConnected();
}

我在SO和其他地方研究了单&符号,found it is a Bitwise AND operand。然而,所有解释都围绕着整数。

我可以理解按位运算对整数的适用性,但它们如何适用于布尔值?

2 个答案:

答案 0 :(得分:8)

它是bools的逻辑运算符,无论左侧的值如何,都会评估双方。

答案 1 :(得分:2)

对于bool&不是按位AND运算符 - 它是非短路逻辑AND运算符 - 它总是计算两个参数 - 而不是到“通常”&&运算符,如果第一个参数的第一个参数为true,则仅计算其第二个参数。

(意识到上面的第一个&与实际的documentation相关联可能并不明显