我想写一个包含三种情况的switch语句:A
,B
和C
。
但是,C
将包含A
中涵盖的所有内容,然后将添加一些其他语句。
因此,如果案例A
写入文件,则案例C
应该写入文件,然后将其写入表中。如何在不重复A
中的C
代码的情况下实现此行为?
答案 0 :(得分:6)
将A代码放入方法中,然后从A和C中调用它,然后在break
之前添加额外的代码
public void Foo (){}
switch(variable)
{
case a: Foo(); break;
case b: otherMethod(); break;
case c: Foo(); ExtraWork(); break;
}
答案 1 :(得分:2)
另一种选择:C#有一个goto语句可能派上用场[更少代码]
switch (CASE){
case A:
JUMP:
// Code for A
break;
case B:
// code for B
break;
case C:
// Code for C
goto JUMP; // Will jump to A
}
答案 2 :(得分:1)
您可以创建一个写入文件的方法。
public void Write(){
//your code here.
}
现在从switch语句案例A和C调用Write()。对于调用Write()后的C语言,您可以执行其他代码。
答案 3 :(得分:1)
在你的情况下,我想到两个选择:
第一个是每个值都有一个不同的大小写,并在两种情况下调用的私有方法中提取代码:
switch (caseSwitch)
{
case a:
YourPrivateMethod();
break;
case b:
// What ever you want to do
break;
case c:
YourPrivateMethod();
break;
default:
Console.WriteLine("Default case");
break;
}
private void YourPrivateMethod()
{
//some stuff
}
第二个是a和c的共享案例:
switch (caseSwitch)
{
case a:
case c:
// Do what A should
if(caseSwitch == c)
{
// Do what C should
}
break;
case b:
// What ever you want to do
break;
default:
Console.WriteLine("Default case");
break;
}
问候。