簡體   English   中英

用標志打開枚舉

[英]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;
}

這個問題不是thisthis的重復。 我已經嘗試了兩種解決方案,但都沒有用,因為如果我的枚舉是,例如Anchor.Left | Anchor.Top Anchor.Left | Anchor.TopThing1()Thing2() ,而我需要Thing3()

在開關中聲明所有這些組合。 (開始時)

其清晰,可理解,可維護。

不可怕 (感覺有點愚蠢將其鍵入)

畢竟,您擁有這些截然不同的案例,因此開關是完美的構造。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM