ser*_*0ne 6 .net c# bit-manipulation operators
如何|=
在C#中执行按位OR()运算符的反转?我可以使用C#中的NOR按位运算符吗?
场景:
我从.NET框架继承了一个基类.该类具有设置标志的操作.
例: flags |= 0x200;
在我的派生类中,我想省略此标志设置,就好像操作flags |= 0x200;
从未发生过一样.
有没有办法实现这个目标?
您可以&
使用~
要删除的值的inverse()来AND():
flags &= ~0x200;
Run Code Online (Sandbox Code Playgroud)
如果您打算确保未设置此标志.如果您要撤消之前对此标志的更改,那么正如@Russell所说,XOR可能就是您所追求的.
您可以对标志进行异或以将其删除
flags ^= 0x200
Run Code Online (Sandbox Code Playgroud)
如果该标志关闭,该操作也将打开该标志.与掩码的异或表现为切换.