50

検討

   [Flags]
   public enum State
   {
      IsCool = 0x1,
      SomethingElse = 0x2
   }

私は、いくつかの式が true と評価された場合、フラグが既に設定されているか設定解除されているかに関係なく、フラグState someStateを設定解除したいと考えています。これは、実際には使用できないことを意味しますが、代わりに何を使用できますか?IsCoolsomeState someState ^= State.IsCool

4

1 に答える 1

105

これには、フラグを設定するときとは逆の方法でアプローチする必要があります。つまり、現在の状態と、削除するフラグの補数をビットごとに AND します。

someState &= ~State.IsCool;
于 2012-06-13T08:35:55.473 に答える