C#中&与&&的区别
2006-12-11 16:59 清炒白菜 阅读(1832) 评论(0) 编辑 收藏 举报
原来没仔细区别过这2个符号,因写代码的时候手误了一下,把&&写成了&,运行的时候没有错误
一查MSDN,原来这2个还是有区别的。
if(keys !=null && keys.length>0)
手误写成了if(keys!=null & keys.length>0)
结果当keys==null的时候,下面的代码报错。一查MSDN,原来这2个还是有区别的。
操作
复制代码
x && y
对应于操作
复制代码
x & 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
复制代码
x && y
对应于操作
复制代码
x & y
不同的是,如果 x 为 false,则不计算 y(因为不论 y 为何值,“与”操作的结果都为 false)。这被称作为“短路”计算。
不能重载条件“与”运算符,但常规逻辑运算符和运算符 true 与 false 的重载,在某些限制条件下也被视为条件逻辑运算符的重载。