按位与与布尔值进行交互的方式如何?
我遇到了一段代码,我无法包住头:
public void Connect()
{
if (!(!string.IsNullOrEmpty(_vpnConnectionName) & !string.IsNullOrEmpty(_ipToPing)))
{
return;
}
GetConnected();
}
我研究了SO和其他地方的单个&符号,发现它是一个按位AND操作数。 然而,解释都是围绕整数。
我可以理解按位运算对整数的适用性,但它们如何适用于布尔值?
它是一个逻辑运算符,用于评估两侧的bools,而不考虑左侧的值。
对于bool
, &
不是一个按位AND
运算符 - 它是非短路逻辑AND
运算符 - 它总是对两个参数进行求值 - 与“常规” &&
运算符相反,该运算符只在第一个参数为true
时才评估第二个参数。
(意识到这可能不是很明显的是,第一&
上述被链接到实际文档)
上一篇: How does Bitwise AND interact with boolean values?
下一篇: Determine on iPhone if user has enabled push notifications