2012-09-12 145 views
1


在一个例子中,我看到了这些运算符(| =和& =),但没有解释。 我在谷歌上看到它,但我发现只有“经典”=运营商相关的结果。
所以我想知道这些操作员在做什么。有人可以向我解释吗?

C#| =和&=运营商

+9

['| ='运算符(C#参考)](http://msdn.microsoft.com/zh-cn/library/h5f1zzaw.aspx) – CodesInChaos

+0

尝试搜索'C#运算符'。 – RedFilter

回答

6

他们就像+=只是速记任务。以下是等效的:

s |= t; 
s = s | t; 

而且这些也是等同的。

s &= t; 
s = s & t; 

有关的经营者的更多信息,你可以看到|&运营商的MSDN文档。

+0

哇!这很快!感谢您的解释和链接;-)对不起,这个noob问题。 – josefpospisil0

+1

它们并不完全等同。 '| ='运算符将确保左侧仅被评估一次,而不是两次。尽管它们不完全一样,但它仍然是将其概念化的适当方式。 – Servy

+0

@Servy:谢谢你指出。即使潜在的OP代码可能略有不同,它们在功能上是不是等同? – mellamokb

0

以及&=就像i+=一样的,换句话说

x&=2x=x & 2

1

它们执行按位或--操作和按位与 - &=操作,结果存储在lValue中。它们与|&相同,但将结果存储在lValue中,类似于++=--=之间的差异。