2012-03-16 435 views
5

可能重複:
What is the diffference between the | and || or operators?
What does | (pipe) mean in c#?單個|是什麼?或&意思?

我有寫在辦公室的另一個開發者,誰不是在當下一些代碼。我的代碼有一些工作要做,但我之前沒有昏迷過。我試着在這裏搜索,但它剝去了我的|走出搜索線。我也不知道那個符號的名字是什麼,所以不能像那樣搜索它。

this.Action.Values[key] = (int)this.Action.Values[key] | 1; 

我的問題是在這種情況下單身或做什麼?

+0

按位或'和按位'和'http://en.wikipedia.org/wiki/Bitwise_operation – kenny 2012-03-16 11:57:17

+0

道歉爲重複的帖子,正如我在這個網站上的搜索框中提到的問題中提到的|符號。 – Andrew 2012-03-16 11:59:40

回答

7

酒吧(或管道),|是一個位OR運營商,並解釋最簡單的方法是,它使我們能夠結合的標誌。試想一下:

[Flags] 
public enum WindowFlags 
{ 
    None = 0, 
    Movable = 1, 
    HasCloseBox = 2, 
    HasMinimizeBox = 4, 
    HasMaximizeBox = 8 
} 

用位或運算,我們可以結合的標誌,正是如此:

WindowFlags flags = WindowFlags .Movable | WindowFlags .HasCloseBox | WindowFlags .HasMinimizeBox; 

我們可以 「測試」 對於給定的標誌,使用:

bool isMovable = (flags & WindowFlags .Movable); 

刪除國旗是多一點在眼球上的應變:

flags &= ~WindowFlags.HasCloseBox; // remove HasCloseBox flag 
1

此運算符表示只是OR

Binary |運算符是爲整型和布爾值預定義的。對於 整數類型,|計算其操作數的按位或。對於bool 操作數,|計算其操作數的邏輯或;即當且僅當兩個操作數都爲假時, 結果爲false。

參考here

看到所有的運營商here在C#

1

| - >邏輯/位或

& - >邏輯/位與

3

這些是按位操作。

011000101 
| 100100100 
----------- 
= 111100101 


    011000101 
& 100100100 
----------- 
= 000000100 
1

單個|是按位或運算符