相关疑难解决方法(0)

为什么C#&&和|| 运营商的工作方式如何?

这是一个tl;博士

我来自C++背景.&&假设检查左侧是否为真,右侧是否为真.与此有什么关系?为什么在&&逻辑中使用它?


我无法理解http://msdn.microsoft.com/en-us/library/aa691312%28v=vs.71%29.aspx并提出了一个问题.我花了很长时间才理解并接受这个答案.我不得不做很多跟进阅读操作员如何重载真假工作?

操作x && y被评估为T.false(x)?x:T.&(x,y)

为什么它这样做呢?如果false重载返回true并且true运算符返回true,则根本不计算y.WTF !!!!

我仍然无法理解它.因为这对我来说太奇怪了,我花了一些时间来理解另一个问题的答案.在C#v = 1 && 2;中不能正常工作你不能做&& on onts.在C中,这返回true(继承人代码/示例http://codepad.org/9iCaqzQ2).如果我们遵循上面的操作规则,我们会这样做

(使用1 && 2)

  • Int.False(1)是错误的
  • 1&2(== 0)
  • Int.True(0)(== false)

这会让你得到错误的结果.

那么...... C#以它的方式执行&&(和||)运算符的原因是什么.

c#

5
推荐指数
2
解决办法
4538
查看次数

标签 统计

c# ×1