2012-03-31 166 views
-2

我不小心嘗試過這個,編譯!所以我想知道什麼可能這可能意味着谷歌..沒有幫助..> +和> - 是什麼意思在C#

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

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

兩個密碼編譯順便說一句..

+12

想一想。 – leppie 2012-03-31 12:35:47

+0

yea正確地評論了leppie – 2012-03-31 12:36:20

+3

點擊'Ctrl + K'' Ctrl + D' – CodesInChaos 2012-03-31 12:36:43

回答

10

它解析爲

3 > +4 

3 > -4 

於是進入unary +unary -運營商。

如果你想要一個有趣的方式來探索這個,寫

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

,然後探索在調試器中產生的表達式樹func。你會在樹中看到一元運算符。

+0

哦,謝謝你.. – nawfal 2012-03-31 12:36:53

2

3是否大於4?

比3更大嗎?

如果你什麼東西是做無疑是有史以來,寫一個小的測試應用程序:

int i = +3; 
    int j = -4; 

    Console.WriteLine(i); 
    Console.WriteLine(j); 

    Console.WriteLine((3 > +4)); 
    Console.WriteLine((3 > -4)); 
2

嘗試把一個分號dothis後()之類

dothis(); 

然後看看會發生什麼到+和 - 運營商。他們將從大於或小於被移開比嘆息並移動更靠近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 

首先變得如果3> 4(正4),這將總是導致錯誤。

如果3> -4(負4)總是成立,則第二個成爲真。