[英]Switch on enum with Flags
我有以下枚舉
[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;
}
這個問題不是this或this的重復。 我已經嘗試了兩種解決方案,但都沒有用,因為如果我的枚舉是,例如Anchor.Left | Anchor.Top
Anchor.Left | Anchor.Top
, Thing1()
和Thing2()
,而我需要Thing3()
。
在開關中聲明所有這些組合。 (開始時)
其清晰,可理解,可維護。
不可怕 (感覺有點愚蠢將其鍵入)
畢竟,您擁有這些截然不同的案例,因此開關是完美的構造。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.