When shall we use single and double operator in C#?
本问题已经有最佳答案,请猛点这里访问。
通常,当我们使用条件逻辑运算符(如
1 2 3 4 5 6 7 | if (x > y && y > z) //codes OR if (x > y || x > z) //codes |
但当我在msdn上读到一页时,他们提到我们可以使用
那么我们什么时候可以用一个像
单个的是位运算符,而双个是逻辑运算符:
- 如果你和
bool 合作,坚持&& 和|| 。 - 如果要进行位运算,请使用
& 和| 。
有关位运算符的详细信息,请参阅维基百科,例如:
1 | 5 & 3 => 1 |
原因是1是5和3共享的2的唯一力量:
1 2 3 4 | 101 (5) & 011 (3) ------- 001 (1) |
希望这有帮助。
双布尔运算符是短路运算符;这意味着如果第一个操作数失败,它将不会检查其他操作数;这被认为更有效。
编辑:
一些投反对票的人鼓励我加上这一部分,
尽管&;operator是位运算符,但它可以用作逻辑运算符,在这种情况下,两个操作数都将在不短路的情况下进行计算
参考msdn:http://msdn.microsoft.com/en-us/library/sbf85k1c.aspx
"二进制运算符是为整型和bool预定义的。对于整数类型,&;计算其操作数的逻辑位和。对于布尔操作数,&;计算其操作数的逻辑和;也就是说,如果且仅当其两个操作数都为真,则结果为真。"
所以这个问题是含蓄地问两个操作符之间的区别,它们都能完成任务,但他想知道选择哪个操作符。
我理解的问题是,要将(&;)和(&;&;)区分为逻辑运算符,而不是单独列出每个运算符的功能。
因此,我反对滥用下等选民