使用标志打开枚举
本文关键字:枚举 标志 | 更新日期: 2023-09-27 18:35:30
我有以下枚举
[Flags]
public enum Anchor
{
None = 1,
Top = 2, Bottom = 4,
Left = 8, Right = 16
}
我需要测试顶部、底部、左侧和右侧的每个可能组合,但在开关中声明所有这些组合很糟糕。
switch (anchor)
{
case Anchor.Left:
Thing1();
break;
case Anchor.Top:
Thing2();
break;
case Anchor.Left | Anchor.Top:
Thing3();
break;
}
这个问题不是这个或这个的重复。我已经尝试了这两种解决方案,但都不适合我,因为如果我的枚举是,比如说Anchor.Left | Anchor.Top
,Thing1()
和Thing2()
将被调用,而我需要Thing3()
被调用。
在开关中声明所有这些组合。(当你开始的时候)
它清晰,易于理解,可维护。
不可怕。(感觉有点傻)
毕竟,您有这些分散的情况,因此开关是完美的结构。