代码改变世界

C#中&与&&的区别

2006-12-11 16:59  清炒白菜  阅读(1832)  评论(0编辑  收藏  举报
原来没仔细区别过这2个符号,因写代码的时候手误了一下,把&&写成了&,运行的时候没有错误
if(keys !=null && keys.length>0)
手误写成了
if(keys!=null & keys.length>0)
结果当keys==null的时候,下面的代码报错。
一查MSDN,原来这2个还是有区别的。
操作

  复制代码 
&& y
 

对应于操作

  复制代码 
& y
 

不同的是,如果 x 为 
false,则不计算 y(因为不论 y 为何值,“与”操作的结果都为 false)。这被称作为“短路”计算。

不能重载条件“与”运算符,但常规逻辑运算符和运算符 
true 与 false 的重载,在某些限制条件下也被视为条件逻辑运算符的重载。
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_csref/html/2e4f0a1c-92a3-40f8-8e3b-17b607f20c31.htm