考虑以下案例陈述
Case 'A':
break;
Case 'B':
Case 'C':
// some logic
int i = 0;
// here I need i =5 (if case id 'B') and i=10 (if case is 'C')
// Rest of the logic is same
break;
我知道我可以通过为'B'和'C'编写单独的案例并在单独的函数中编写其余逻辑并在'B'和'C'案例中调用该函数来实现这一点。
但是有什么办法,我只能在Case语句中查看案例......如下
Case 'B':
Case 'C':
// Can I check here
// if (case == 'B')
// i = 5;
// if (case == 'C')
// i = 10;
// Rest of the logic
答案 0 :(得分:2)
我尝试了下面的工作,没有任何问题:
switch (a)
{
case 'A':
Console.WriteLine("Es ist ein 'A'.");
break;
case 'B':
case 'C':
if (a == 'B')
Console.WriteLine("Es ist ein 'B'.");
if (a == 'C')
Console.WriteLine("Es ist ein 'C'.");
break;
}
但是,如果你只是检查它是否是' B'或者' C',我建议写两个不同的案例。
答案 1 :(得分:2)
将您的//Rest of Logic
置于新方法中,并针对更简洁的代码单独执行测试用例:
private void DoSomething(int i)
{
//Rest of Logic
}
public void SwitchMethod(char input)
{
int i = 0;
Switch (input)
{
case 'A':
break;
case 'B':
i = 5;
DoSomething(i);
break;
case 'C':
i = 10;
DoSomething(i);
break;
}
}