有没有办法在Switch语句中执行某些代码,只有在传递了任何案例时才会执行?

cyb*_*cat 2 c# switch-statement

有没有办法可以为每个"Case"执行相同的代码行,但只需要输入一次而不是为所有Case指定相同的代码?

        switch (SomeTest)
        {
            case "test1":
                {
                    // Do something for test 1 
                    break;
                }
            case "test2":
                {
                    // Do something for test 2 
                    break;
                }
            case "test3":
                {
                    // Do something for test 3 
                    break;
                }
            // =====> Then do something generic here for example if case is test1, test2 or test3
        }
Run Code Online (Sandbox Code Playgroud)

Gar*_*ler 7

你可能在想它吗?

switch(SomeTest)
{
    // specific stuff
}

// code you want running for every case
Run Code Online (Sandbox Code Playgroud)

否则,你可以做的最好的事情是没有设置标志或什么:

switch(SomeTest)
{
    // specific stuff
}

switch(SomeTest)
{
    case "Test1", "Test2", "Test3":
        // stuff for the matching cases
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您想为匹配的每个案例运行代码:

bool runGenericStuff = true;

switch(SomeTest)
{
    // specific stuff
    default:
        runGenericStuff = false;
}

if (runGenericStuff)
{
    // run generic stuff
}
Run Code Online (Sandbox Code Playgroud)

这可以节省您在每种情况下都必须设置标志.