Switch on Enum (with Flags attribute) without declaring every possible combination?

后端 未结 9 2021
忘掉有多难
忘掉有多难 2021-01-31 14:15

how do i switch on an enum which have the flags attribute set (or more precisely is used for bit operations) ?

I want to be able to hit all cases in a switch that matche

9条回答
  •  不思量自难忘°
    2021-01-31 15:01

    With C# 7 you can now write something like this:

    public void Run(CheckType checkType)
    {
        switch (checkType)
        {
            case var type when CheckType.Form == (type & CheckType.Form):
                DoSomething(/*Some type of collection is passed */);
                break;
    
            case var type when CheckType.QueryString == (type & CheckType.QueryString):
                DoSomethingElse(/*Some other type of collection is passed */);
                break;
    
            case var type when CheckType.TempData == (type & CheckType.TempData):
                DoWhatever(/*Some different type of collection is passed */);
                break;
        }
    }
    

提交回复
热议问题