我正在阅读一些第 3 方代码,我发现了这个:
x.Flags = x.Flags ^ Flags.Hidden;
它有什么作用?
我用过'&'和'|' 对于带有枚举的按位“和”和“或”,但这是我第一次看到那个符号......
^ 是 C# 中的按位异或运算符。
编辑:如果 a 为真且 b 为假,或者 a 为假且 b 为真,则 a ^ b 返回真,但不是两者兼而有之。
那将是“异或”运算符。在您的示例代码中,它将根据 x.Flags 的当前值打开或关闭 Flags.Hidden。
这样做的好处是它允许您更改 Flags.Hidden 的设置,而不会影响已设置的任何其他标志。
取自这里:
对于整数类型,^ 计算其操作数的按位异或。对于 bool 操作数,^ 计算其操作数的逻辑异或;也就是说,当且仅当奇数个操作数为真时,结果才为真。
这是异或(XOR)运算符,此链接有示例用法