2012-01-04 18 views
3

私のプロジェクトでは、この演算子| =サンプルコードの一部が使用されています。正確なコードは次のとおりです。C#で演算子| =の意味は何ですか?

DocumentRetrievalOptions docRetrievalOptions = DocumentRetrievalOptions.ByTargetJurisdiction;  
    docRetrievalOptions |= DocumentRetrievalOptions.ByUniqueId; 

ここで 'DocumentRetrievalOptions'は型がenumです。

もし私が知っているのであれば、本当にこれが意味することは、大きな助けになるでしょう。

答えて

6

Bitwise/Logical OR - assign演算子です。 DocumentRetrievalOptionsはビット単位の演算を行う|=あなたのケースでは、enumあるのでA |= B;A = A | B;

と同じです。

0

*ビット演算子*または*演算子(|)を両方のオペランドに適用し、結果をdocRetrievalOptionsに格納します。

それはintとして列挙を解釈し、操作を行いdocRetrievalOptions = docRetievalOptions | DocumentRetrievalOptions.ByUniqueId;

と同じです。

1

それはショートカットです:ビット単位-OR演算子であること

docRetrievalOptions = docRetrievalOptions | DocumentRetrievalOptions.ByUniqueId; 

|。この方法では、+=,-=などの演算子と同様に動作します。

1

通常、列挙の値はフラグとして使用され、| =または「等しい」演算子は単にこれらの値のビット表現を取り、ビット単位のORを実行します。このようにして、列挙の別の機能やフラグを有効にします(この場合は、ドキュメントの検索オプションはターゲットのジャーナルまたはユニークIDのいずれかです)。

関連する問題