【发布时间】:2014-05-24 07:14:37
【问题描述】:
我遇到了一段我无法理解的代码:
public void Connect()
{
if (!(!string.IsNullOrEmpty(_vpnConnectionName) & !string.IsNullOrEmpty(_ipToPing)))
{
return;
}
GetConnected();
}
我研究了 SO 和其他地方的单 & 符号,以及 found it is a Bitwise AND operand。然而,所有的解释都围绕着整数。
我可以理解按位运算对整数的适用性,但它们如何适用于布尔值?
【问题讨论】:
-
尽量避免在同一个问题中问两个问题。通常只有一个得到答复
-
查一下德摩根定律,你会发现你的变换是正确的。
-
C#编译器完成后,int和bool没有区别。当您对它们进行逻辑处理时,CLR 将它们视为具有预期结果的整数。 VB.NET 的 True 也是 -1 的原因,这是一种历史上不区分逻辑与位与的语言。所以埃里克的评论“是布尔位”的答案是肯定的。
标签: c# bit-manipulation bitwise-and