按位与与布尔值进行交互的方式如何?

我遇到了一段代码,我无法包住头:

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

    GetConnected();
}

我研究了SO和其他地方的单个&符号,发现它是一个按位AND操作数。 然而,解释都是围绕整数。

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


它是一个逻辑运算符,用于评估两侧的bools,而不考虑左侧的值。


对于bool&不是一个按位AND运算符 - 它是非短路逻辑AND运算符 - 它总是对两个参数进行求值 - 与“常规” &&运算符相反,该运算符只在第一个参数为true时才评估第二个参数。

(意识到这可能不是很明显的是,第一&上述被链接到实际文档)

链接地址: http://www.djcxy.com/p/72647.html

上一篇: How does Bitwise AND interact with boolean values?

下一篇: Determine on iPhone if user has enabled push notifications