c# - 取消设置枚举标志

标签 c#

考虑

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

我有一个 State someState,如果某个表达式的计算结果为真,我想取消设置 someStateIsCool 标志 已经设置或未设置。这意味着我不能真正使用 someState ^= State.IsCool 但我可以使用什么来代替?

最佳答案

您需要采用与设置标志相反的方法:按位与当前状态与要删除的标志的补码。

someState &= ~State.IsCool;

关于c# - 取消设置枚举标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11011020/

相关文章:

c# - ASP.NET Core 3.0 - InProcess 与 OutOfProcess(HTTP 错误 500.30 - ANCM 进程内启动失败)

c# - 加入具有一对多关系的两个表并从多个方面选择最新的

c# - 如何增加 WPF 中矩形的 HitTest 半径?

c# - 二维码扫描并在二维码中显示信息

c# - 检查字符串是否包含一个单词,然后检查它是否以该单词开头,如果不包含?

c# - Fluent API HasXXX 与 WithXXX 方法

c# - 完全信任和中度信任问题

c# - "Dictionary"键作为存储元素的一部分?

C#/Postgres/FluentNHibernate : configuring npgsql throws NotSupportedException

c# - 类型比较的性能成本