'^'在c#(Enums)中做了什么?

jua*_*uan 9 c# enums operators

我正在阅读一些第三方代码,我发现了这个:

x.Flags = x.Flags ^ Flags.Hidden;
Run Code Online (Sandbox Code Playgroud)

它有什么作用?

我用'&'和'|' 用于按位'和'和'或'用枚举,但这是我第一次看到那个符号......

Rom*_*ier 22

^是C#中的按位XOR运算符.

编辑:如果a为真且b为假或a为假且b为真,则a ^ b返回true,但不是两者.

  • 它会切换x.Flags中的Flags.Hidden位.(如果它是1,它将是0;如果它是0,它将是1). (5认同)

Jer*_*ine 15

这将是'xor'运营商.在您的示例代码中,它将打开或关闭Flags.Hidden,具体取决于x.Flags的当前值.

这样做的好处是它允许您更改Flags.Hidden的设置,而不会影响已设置的任何其他标志.