C#中&和&&的区别 Kevin

Console.WriteLine(1 == 1 & 1 == 1);
前后两个判断都会执行.
Console.WriteLine(1 == 1 && 1 == 1);
如果前面的判断为false则不执行后面的判断.直接返回false.

建议用 && 这么做是有原因的.

比如  tb 是一个TextBox
if(tb!=null & tb.Text==""){}
如果tb!=null的值为true,则这么写会出错.
因为不管tb!=null的值为true还是false都会去执行tb.Text=="".而当tb==null的时候是没有tb.Text的.

if(tb!=null && tb.Text==""){}
如果tb!=null的值为false则不会执行后面的判断.


MSDN上的解释:

为整型和 bool 类型预定义了二进制 & 运算符。对于整型,& 计算操作数的逻辑按位“与”。对于 bool 操作数,& 计算操作数的逻辑“与”;也就是说,当且仅当两个操作数均为 true 时,结果才为 true

& 运算符计算两个运算符,与第一个操作数的值无关

原文地址:https://www.cnblogs.com/kfx2007/p/2707812.html