我似乎无法谷歌 - 似乎不喜欢搜索字符串中的语法。谢谢你的帮助。
答案 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)
答案 7 :(得分:0)