c# - 在 C# 中, '|=' 是做什么的?

标签 c# operators

我似乎无法用 Google 搜索它 - 似乎不喜欢搜索字符串中的语法。感谢您的帮助。

最佳答案

这是一个有点明智的任务。大致是下面的简写

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

关于c# - 在 C# 中, '|=' 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9609739/

相关文章:

c# - 两个 C# 命名约定 : What do you think?

c# - 为什么 enum.ToString() 给出的结果与调试器工具提示中显示的结果不同?

c# - 使用泛型类型有什么优雅的操作方式吗?

带有赋值的java运算符优先级

java - 为什么通过引用比较整数 (==) 有效?

C# 创建自定义自动完成文本框

c# - C#中位的快速排列

c# - 为什么绑定(bind)的 StringFormat 不使用当前区域性?

c++ - 如何在不更改/检测模块源的情况下对用户定义的 `operator new` 和 `operator delete` 进行单元测试?

javascript - JavaScript 按位运算符如何工作?