我想写一个switch语句,有三种情况:A
,B
和C
。 但是,C
将包含A
中涵盖的所有内容,然后将添加其他一些语句。写一个开关语句,其中一个包含另一个的情况
因此,如果案例A
写入文件,案件C
应该写入文件,然后写入一个表。如何在不重复C
中的A
代码的情况下实现这种行为?
我想写一个switch语句,有三种情况:A
,B
和C
。 但是,C
将包含A
中涵盖的所有内容,然后将添加其他一些语句。写一个开关语句,其中一个包含另一个的情况
因此,如果案例A
写入文件,案件C
应该写入文件,然后写入一个表。如何在不重复C
中的A
代码的情况下实现这种行为?
把代码中的方法,然后从A和C调用它,然后ç
public void Foo(){}
switch(variable)
{
case a: Foo(); break;
case b: otherMethod(); break;
case c: Foo(); ExtraWork(); break;
}
的break
前添加额外的代码可以用于写入文件中创建一个方法。
public void Write(){
//your code here.
}
现在从switch语句的情况A和C调用Write()。对于调用Write()后的情况C,您可以执行其他代码。
在你的情况我想两个选项:
首先是具有每个值不同的情况下,并在被称为在两个情况下,私有方法提取代码:
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
}
二一个是共享的情况下为和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;
}
问候。
另一种选择: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
}