Ada*_*oll 5 c# binary enums 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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道可能有一个简单的答案,我只是想一想......
编辑:如其中一个答案所指出的,枚举是不正确的.这只是在这个例子中,而不是在实际的代码中.
我的意思是,你可以这样做:
_myFlags = value ? myFlags | SomeFlaggedEnum.Value1 : myFlags & ~SomeFlaggedEnum.Value1;
Run Code Online (Sandbox Code Playgroud)
但我认为你的解决方案很好.
好吧,你可以使用一个条件:
_myFlags = value ? _myFlags | SomeFlaggedEnum.Value1
: _myFlags & ~SomeFlaggedEnum.Value1;
Run Code Online (Sandbox Code Playgroud)