c# - 根据 bool 值更改标志

标签 c# enums binary flags

有没有更优雅的方法来做到这一点?

[Flags]
public enum SomeFlaggedEnum
{
    Value1 = 1,
    Value2 = 2,
    Value3 = 4
}


private SomeFlaggedEnum _myFlags;

public bool EnabledValue1
{
    set 
    {
        if (value)
        {
            _myFlags |= SomeFlaggedEnum.Value1;
        }
        else
        {
            _myFlags &= ~SomeFlaggedEnum.Value1;
        }
    }
} 

我知道可能有一个简单的答案,但我只是想多了......

编辑:正如其中一个答案所指出的,枚举是不正确的。这仅在本示例中出现,实际代码中并未出现。

最佳答案

我的意思是,你可以:

_myFlags = value ? myFlags | SomeFlaggedEnum.Value1 : myFlags & ~SomeFlaggedEnum.Value1;

但我认为你的解决方案很好。

关于c# - 根据 bool 值更改标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6958558/

相关文章:

c# - C#条件OrderBy

c# - wpf 组合框默认从 itemssource 选择

swift - 比较嵌套枚举

c++ - 在 C/C++ 中声明 typedef 枚举数组组合的正确方法是什么?

binary - WSO2 响应二进制文件?

c++ - 条件下移位操作的使用说明

c# - 使用带有 XML post 的 HttpWebRequest 时如何添加 Bearer 和 Scope

Java Enum 访问私有(private)实例变量

python - 二进制 numpy 数组到整数列表?

c# - MVC @Html.HiddenFor 渲染没有值的 html 表单