&与&&的区别

来源:百度知道 编辑:UC知道 时间:2024/06/01 18:48:27
3Q,请高手指教

在C#中,&&是逻辑与,需要两个bool类型表达式参与运算,结果也是bool类型。如果&&两边表达式计算的结果都是true,那么&&的结果就是true,否则就是false。
&&有一个快速运算法则:当&&的左边计算的结果是false,那么无论右边表达式的结果是什么,&&的结果一定是false,此时,&&右边的表达式根本不会去运算。如果此时&&右边是一个函数调用,那么这个函数就不会被调用。

&是位运算,按位与,参与运算的一半是两个整数。例如:5 & 3,由于5的二进制码是0101,3的二进制码0011,那么0101 & 0011 = 0001,所以结果就是1。
&也可以用作两个bool型数据的运算,同样,当两边都是ture,结果才是true,不过&在bool型数据运算时,不存在快速运算法则。

推荐使用&&

使用“&&”当第一个为false是就不需要考虑后面的操作数,所以比& 要快一些!

"&"要运算所有操作数