运算符| =在C#中意味着什么?

时间:2012-01-04 05:49:31

标签: c# c#-4.0

我可以在我的项目中的某些示例代码中看到此运算符使用。确切的代码如下所示

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

其中'DocumentRetrievalOptions'的类型为枚举。

如果有人告诉我,这意味着什么,这将是非常有帮助的。

5 个答案:

答案 0 :(得分:6)

这是Bitwise/Logical OR - assign运算符。 A |= B;A = A | B;

相同

由于DocumentRetrievalOptionsenum,因此在您的情况下|=执行按位操作。

答案 1 :(得分:1)

这是一个快捷方式:

docRetrievalOptions = docRetrievalOptions | DocumentRetrievalOptions.ByUniqueId;

|是按位OR运算符。通过这种方式,它的工作方式类似于+=-=以及此样式的其他运算符。

答案 2 :(得分:1)

通常,枚举中的值用作标志,| =或“或等于”运算符只是采用这些值的位表示,并对它们进行按位OR运算。这样,您“启用”枚举的另一个功能或标志(在这种情况下,文档的检索选项可以通过目标jursisdiction或唯一ID)。

答案 3 :(得分:1)

另请阅读:http://msdn.microsoft.com/en-us/library/system.flagsattribute.aspx 如果您希望以这种方式使用此运算符,这非常有用。

答案 4 :(得分:0)

它将* bitwise或*运算符(|)应用于两个操作数,并将结果存储在docRetrievalOptions中。

docRetrievalOptions = docRetievalOptions | DocumentRetrievalOptions.ByUniqueId;

相同

它将枚举解释为int,然后执行操作。