C#中&与&&有什么区别
C#中&与&&有什么区别?整数&整数是点样计算的,整数&&整数又是点样计算的,对于BOOL类型的,这两个又是点样进行计算的?最好举个例子说明下
------解决方案--------------------MSDN:
一元 & 运算符返回操作数的地址(要求 unsafe 上下文)。 
为整型和 bool 类型预定义了二进制 & 运算符。对于整型,& 计算操作数的逻辑按位“与”。对于 bool 操作数,& 计算操作数的逻辑“与”;也就是说,当且仅当两个操作数均为 true 时,结果才为 true。  
& 运算符计算两个运算符,与第一个操作数的值无关。
&还可以直接参与枚举运算,并且可以重载其二元运算
条件“与”运算符 (&&) 执行其 bool 操作数的逻辑“与”运算,但仅在必要时才计算第二个操作数。
而&需要计算所有操作数,并且优先级高于&&
------解决方案-------------------- MSDN上的解释:条件“与”运算符 (&&) 执行其 bool 操作数的逻辑“与”运算,但仅在必要时才计算第二个操作数。  
    操作x && y  对应于操作 x & y ,不同的是,如果 x 为 false,则不计算 y(因为不论 y 为何值,“与”操作的结果都为 false)。 这被称作为“短路”计算。  
不能重载条件“与”运算符,但常规逻辑运算符和运算符 true 与 false 的重载,在某些限制条件下也被视为条件逻辑运算符的重载。  
    下面介绍的场景:  
     1 if(userName !=null && userName .length>0) 这样的条件只能用&&,而不能用&,因如果用userName !=null 为false 的话,userName .lengh>0就不会再判断了,但如果换成& 的就会报错。这种场景下只能使用&&。  
        2 if(userName!=null && age>0) 这种场景下&&和& 都可以,但&&性能会好一点,因为x为false ,那么就不会再判断y了  
       3  还有一种场景需要使用& ,如:silverlight 后台数据验证,当提交后没有通过验证的都需要标记,这种情况下就可以用&。             
     private bool ValidateData()
       {
           this.ClearError();
           return ValidUserName() & ValidRoleType(); 
       }
       private bool ValidUserName()
       {
           if (string.IsNullOrEmpty(this.UserName))
           {
               this.AddError("UserName", "用户名不能为空");
               return false;
           }
           else
           {
               this.RemoveError("UserName");
               return true;
           }
       }
       private bool ValidType()
       {
           if (TypeIndex == 0)
           {
               this.AddError("TypeIndex", "请选择类型");
               return false;
           }
           else
           {
               this.RemoveError("TypeIndex");
               return true;
           }
       }
我是COPY的
------解决方案--------------------&就是按位与,学过计算机组成原理吧
&&就是并且,表示同时满足&&前后的表达式或者值为真才执行