【问题标题】:What does >+ and >- mean in C#>+ 和 >- 在 C# 中是什么意思
【发布时间】:2012-04-14 21:37:01
【问题描述】:

我不小心尝试了这个,它可以编译!所以我想知道这可能意味着什么.. 谷歌没有帮助..

if (3 >+ 4)
   dothis() //this is never hit btw..

if (3 >- 4)
   dothis() //this is hit.

两个代码都编译 btw..

【问题讨论】:

  • 是的,leppie 正确地评论了
  • 哦,我真愚蠢。多谢你们。我可以结束这个问题吗?
  • 顺便说一句。你知道去运营商i --> 0和来自运营商0 <-- i吗? stackoverflow.com/questions/1642028/…
  • 没有理由将其否决。问题很清楚,并且有显示问题的代码。虽然答案可能很明显,但有时一个人有点脑残。 --> 的问题有点酷,但本质上是一样的,得到了​​数百个赞。
  • @CodeInChaos:同意;这个问题是完全合法的。希望下一个遇到这个问题的人可以简单地用谷歌搜索一下。

标签: c# .net operators


【解决方案1】:

解析为

3 > +4

3 > -4

因此进入unary +unary - 运算符。

如果你想用有趣的方式来探索这个,写

Expression<Func<int, int, bool>> func = (x, y) => x >+ y;

然后在调试器中探索生成的表达式树func。您将在树中看到一元运算符。

【讨论】:

    【解决方案2】:

    3 是否大于 4?

    3 是否大于 -4?

    如果您对某事在做什么有疑问,请编写一个小测试应用程序:

      int i = +3;
      int j = -4;
    
      Console.WriteLine(i);
      Console.WriteLine(j);
    
      Console.WriteLine((3 > +4));
      Console.WriteLine((3 > -4));
    

    【讨论】:

      【解决方案3】:

      试着在 dothis() 后面加分号

      dothis();
      

      然后观察 + 和 - 运算符会发生什么。它们将从大于或小于 sigh 移动到更接近 4。

      if (3 > +4)
         dothis() //this is never hit btw.. 
                  //will never hit in the entire universe
      
      if (3 > -4)
         dothis() //this is hit
                  //will always be a hit
      

      首先变为 if 3 > +4 (Positive 4),这将始终导致 false。

      如果 3 > -4(负 4),则第二个变为 true。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-09
        • 2011-07-07
        • 2012-12-11
        • 2016-12-08
        • 2016-04-19
        • 2015-04-11
        • 2012-04-25
        • 2011-08-25
        相关资源
        最近更新 更多