2015-01-21 45 views
1

我想写一个switch语句,有三种情况:ABC。 但是,C将包含A中涵盖的所有内容,然后将添加其他一些语句。写一个开关语句,其中一个包含另一个的情况

因此,如果案例A写入文件,案件C应该写入文件,然后写入一个表。如何在不重复C中的A代码的情况下实现这种行为?

回答

6

把代码中的方法,然后从A和C调用它,然后ç

public void Foo(){} 

switch(variable) 
{ 
    case a: Foo(); break; 
    case b: otherMethod(); break; 
    case c: Foo(); ExtraWork(); break; 
} 
1

break前添加额外的代码可以用于写入文件中创建一个方法。

public void Write(){ 
    //your code here. 
} 

现在从switch语句的情况A和C调用Write()。对于调用Write()后的情况C,您可以执行其他代码。

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 
} 

二一个是共享的情况下为和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; 
    } 

问候。

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 
     } 
相关问题