在C#中,'| ='做什么?

时间:2012-03-07 21:58:25

标签: c# operators

我似乎无法谷歌 - 似乎不喜欢搜索字符串中的语法。谢谢你的帮助。

8 个答案:

答案 0 :(得分:15)

这是一个明智的任务。它大致是以下

的简写
x |= y;
x = x | y;

注意:这不是真正的上述原因,因为C#规范保证x的副作用只发生一次。因此,如果x是一个复杂的表达式,编译器会生成一些有趣的代码,以确保副作用只发生一次。

Method().x |= y;
Method().x = Method().x | y;  // Not equivalent

var temp = Method();
temp.x = temp.x | y;  // Pretty close

答案 1 :(得分:3)

表达式a |= b等同于赋值a = a | b,其中|是按位OR运算符。*

*不完全,但足够接近大多数用途。

答案 2 :(得分:2)

就像+=,但是使用二进制OR

int x = 5;
x |= 6;  // x is now 7: 5 | 6

您还可以执行其他活动,例如&=/=*=等。几乎任何二元(两个参数)运算符

答案 3 :(得分:0)

在C和其他语言遵循C语法约定,如C ++,Perl,Java和C#,(a | b)表示按位或;而双竖条(a || b)表示(短路)逻辑或。

答案 4 :(得分:0)

a |= b在语义上与a = a | b

相同

答案 5 :(得分:0)

| =是按位OR赋值运算符。在这里查看msdn文档http://msdn.microsoft.com/en-us/library/h5f1zzaw(v=vs.100).aspx

答案 6 :(得分:0)

你会找到答案的 here on msdn

x |= y

相同
x = x | y

答案 7 :(得分:0)

相关问题