Bitwise AND如何与布尔值交互

本文关键字:布尔值 交互 AND Bitwise | 更新日期: 2023-09-27 17:57:55

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

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

我研究了SO和其他地方的单和运算,发现它是一个位and操作数。然而,所有的解释都围绕着整数。

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

Bitwise AND如何与布尔值交互

它是布尔上的一个逻辑运算符,无论左侧的值如何,都会对两侧求值。

对于bool&不是按位的AND运算符-它是非短路逻辑AND运算符-它总是计算两个参数-而"通常"的&&运算符只有在第一个参数为true时才计算第二个参数。

(意识到上面的第一个&链接到实际文档可能并不明显)