• 作者:SuperPaxxs扶摇直上九万里,绝云气,负青天,不知图哪了,正在努力搜索中..
    • 请在Chrome、Firefox等现代浏览器浏览本站。 有事 点击这里 联系博主
    • 想在魔帆博客投稿? 点击这里 联系博主
    • [ 既然来了就多看两篇文章嘛,你好意思走么? ]
    • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏魔帆博客吧

C#中的&与&&的区别

目录
[隐藏]

今天写游戏,因为这个卡了很久,特意写一篇文章来记录一下两者的区别、
首先,它们都是“与”运算符(我以前还不知道有&)今天写消除类游戏碰巧撞到了,查了下MSDN,把区别贴出来,时时提醒自己。


&&

“条件“与”运算符 (&&) 执行其 bool 操作数的逻辑“与”运算,但仅在必要时才计算第二个操作数。”

也就是说

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


&

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

也就是说

如果 x 为 false,会计算 y(但不论 y 为何值,与操作的结果都为 false)

下面的例子最能说明问题

class Demo
{
   static bool one() 
   {
      Console.WriteLine("one called");
      return false;
   }

   static bool two() 
   {
      Console.WriteLine("two called");
      return true;
   }

   public static void Main() 
   {
      Console.WriteLine("regular AND:");
      Console.WriteLine("result is {0}", one() & two());//这里用的&
      Console.WriteLine("short-circuit AND:");
      Console.WriteLine("result is {0}", one() && two());//这里用的&&
   }
}

输出结果:

regular AND:
one called
two called
result is False
short-circuit AND:
one called
result is False

所以(|) 与 (||) 运算符也是一样的道理~就不另外说了
[!](&) 也可作为一元运算符,返回操作数的地址


魔帆博客 , 版权所有丨如未注明 , 均为原创丨本网站均采用BY-NC-SA协议进行授权 , 转载请注明C#中的&与&&的区别
喜欢 (5)
[]
分享 (0)
Super Paxxs
关于作者:
一只初中狗,对网站建设和编程非常感兴趣。
发表我的评论
取消评论
表情 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 我对你博客的爱,你永远不会明白!
    增达信购2016-09-22 15:53 回复
×
订阅图标按钮