通用枚举作为传递参数

时间:2015-12-13 14:19:55

标签: c# generics methods enums

假设我想创建一个接受枚举而不是字符串的方法,因此我可以指定一个参数,而不是编写表示传递参数的字符串值。

例如,假设mods是名称字符串,因此每个变体都有自己的项目,并且必须对所选项目进行调用。

   public void DoWithMode(chosenMod parModifier)
   {
       string SelectedM = parModifier.ToString();
       dedicateLineTo(Seleted...) or something
   }

  public class Com
  {
      public enum chosenMode{dummy1, dummy2};
  }
  public class Tel:Com
  {
     public new emum chosenMode {Telmod1, Telmod2};
     public Tel
     {
         DoWithMode(chosenMode.Tel1mode);
     }
  }

  class fax:Com
  {
      emum new chosenMode {Faxmod1, Faxmod2}; 
      public fax
      {
          DoWithMode(chosenMode.Faxmod2);
      }
  }

如果我想制作通用ChosenMode该怎么办?比方说,电话和传真有Do()方法的一些常见用法,我可以做一些覆盖,但这只有两种,如果我有20个或更多的类,每个都有自己的项目通过?

所以它只是字符串或方法覆盖虽然我在考虑使用enum而不是一类const字符串。

此案例的解决方法是什么?

我可以使用enum类型做其他事情,但是intellisense不会自动建议它所以我需要写一些像

DoSomething(namespaceA.classT.subclassV.classX....class.modifier.item)

0 个答案:

没有答案