C# switch:执行多个代码块

Dis*_*sti 1 c#

假设我有一个 char 变量,并且根据它的值,我需要执行一些函数,遵循以下模式:

Value  | Execute
-------+------------
A      | Func1
B      | Func2
C      | Func3
A or C | Func4
D      | Func5
B or D | Func6
-------+------------
Run Code Online (Sandbox Code Playgroud)

例如,如果 v='A' 我将运行 Func1 和 Func4;如果 v='B' 我将运行 Func2 和 Func6。

我正在寻找这样的东西:

switch (v)
{
    case 'A': Func1(); break;
    case 'B': Func2(); break;
    case 'C': Func3(); break;
    case 'A': case 'C': Func4(); break;
    case 'D': Func5(); break;
    case 'B': case 'D': Func6(); break;
}
Run Code Online (Sandbox Code Playgroud)

c#中有类似的东西吗?

Dav*_*vid 6

这些要求不必要地令人困惑。他们主要关注“执行”部分,而不是“价值”部分。翻转焦点,让“价值”成为需求的“关键”,它就会变得更加清晰:

Value  | Execute
-------+------------
A      | Func1 and Func4
B      | Func2 and Func6
C      | Func3 and Func4
D      | Func5 and Func6
-------+------------
Run Code Online (Sandbox Code Playgroud)

那么代码就很明显了:

switch (v)
{
    case 'A':
        Func1();
        Func4();
        break;
    case 'B':
        Func2();
        Func6();
        break;
    case 'C':
        Func3();
        Func4();
        break;
    case 'D':
        Func5();
        Func6();
        break;
}
Run Code Online (Sandbox Code Playgroud)