C#避免多个SWITCH语句.net

Cra*_*Ste 8 .net c# switch-statement

当我学习C#/ .NET的复杂性时,请原谅愚蠢的爆发

假设我有三个具有多个静态属性的类(超过三个但是为了参数...)

 CLASS FOO

    public static A
    { 
       get / set A;
    }   
    public static B
    {
       get / set B;
    }   
    public static C
    {
       get / set C;
    }   

 CLASS BAR
     {
        get / set A;
     }
    public static B
    {
       get / set B;
    }   
    public static C
    {
       get / set C;
     }   

 CLASS YOO
     {
        get / set A;
     }
    public static B
    {
       get / set B;
     }   
    public static C
    { 
       get / set C;
    }   
Run Code Online (Sandbox Code Playgroud)

从另一个类我需要多次更新每个类中的一个或多个静态属性...如何保持编写多个这样的SWITCH语句......

 public void updateVarx(string class, string varx)
 {
   string y = 'class'
   SWITCH (y)
   {
      case FOO:
       FOO.A = Varx;
       break;
      case BAR:
       BAR.A = Varx;
       break;
      case YOO:
       YOO.A = Varx;
      break;
   }
 }
Run Code Online (Sandbox Code Playgroud)

然后另一个当我想要更新B varY时:

 public void updateVary(string class, string vary)
 {
   string y = 'class'
   SWITCH (y)
   {
     case FOO:
      FOO.B = Vary;
      break;
     case BAR:
      BAR.B = Vary;
      break;
    case YOO:
      YOO.B = Vary;
      break;
   }
 }
Run Code Online (Sandbox Code Playgroud)

Pet*_*ete 2

也许我不理解这个问题,但如果你的所有类都具有相同的属性,那么你可以将对象(FOO、BAR 或 YOO)传递到 UpdateVarx 或 UpdateVary 方法中并实现一个接口吗?沿着这些思路:

public class FOO : IHasStatus
{
    public A
    { 
       get / set A;
    }   
    public B
    {
       get / set B;
    }   
    public C
    {
       get / set C;
    }
} 

public void updateVarx(IHasStatus someObject, string varx)
{
    someObject.A = varx;
}
public void updateVary(IHasStatus someObject, string vary)
{
    someObject.B = vary;
}
Run Code Online (Sandbox Code Playgroud)