【问题标题】:What does '^' do in c# (Enums)?'^' 在 c#(枚举)中做了什么?
【发布时间】:2010-09-19 02:02:45
【问题描述】:

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

x.Flags = x.Flags ^ Flags.Hidden;

它有什么作用?

我用过 '&' 和 '|'对于带有枚举的按位“和”和“或”,但这是我第一次看到那个符号......

【问题讨论】:

  • 这不是“帽子”。它是一个土豆。

标签: c# enums operators


【解决方案1】:

^ 是 C# 中的按位异或运算符。

编辑:如果 a 为真且 b 为假,或者 a 为假且 b 为真,则 a ^ b 返回真,但不能同时为真。

【讨论】:

  • 我对按位运算的记忆有点生疏了……在这种情况下异或会做什么?
  • 当且仅当其中一个操作数为真时才返回真。
  • 它将切换 x.Flags 中的 Flags.Hidden 位。 (如果为 1,则为 0;如果为 0,则为 1)。
【解决方案2】:

那将是“异或”运算符。在您的示例代码中,它将根据 x.Flags 的当前值打开或关闭 Flags.Hidden。

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

【讨论】:

    【解决方案3】:

    【讨论】:

      【解决方案4】:

      取自here

      对于整数类型,^ 计算 其操作数的按位异或。 对于 bool 操作数,^ 计算 其操作数的逻辑异或; 也就是说,如果 并且 仅当 奇数 的操作数是 真的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-27
        • 2013-12-15
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-16
        相关资源
        最近更新 更多