如果通过类名执行对应的方法。
例:
  url参数传递了类名为“itema”
   那么我需要执行 addItem<itema>(itema t)方法添加对象。
  url参数传递了类名为“itemb”
   那么我需要执行 addItem<itemb>(itemb t )方法对象。
   
我现在用来很笨的方法

switch(参数)
{
   case "itema":
      addItem<itema>(itema t);
     break;
case "itemb":
      addItem<itemb>(itemb t);
     break;
}
请教高手有什么好办法实现类似的方法。委托?
分不多了。别介意

解决方案 »

  1.   

    string returnValue1 = classSampleType.InvokeMember("ClassMethod", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance, null, null, new object[] { }) as string;
    http://msdn.microsoft.com/zh-cn/library/5fed8f59(VS.95).aspx
      

  2.   

    wuyq11:
      能否详细一点,谢谢,辛苦了。
    说明: 
    对于泛型方法,请不要在 name 中包括此类型参数。例如,C# 代码 GetMember("MyMethod<int>") 搜索文本名称为"MyMethod<int>"的成员,而不是搜索一个名为 MyMethod 的方法,该方法具有一个 int 类型的泛型参数。
     
    这样的话,我用到的泛型方法应该如果传递<class>
      

  3.   

    貌似要用到反射,因为你直接传递函数名然后就执行这个函数的方法。
    其实你用switch也是一样的效果,反射会影响你程序的效率,还是少用为好!
      

  4.   

    楼主的泛型方法是一种特例,调用的时候无需指明具体的类型.
    你这样使用即可addItem(t);
      

  5.   

    怎样才能对 enum 类型 用泛型
    下面这样是不对public void Operation<T>() where T : enum
    {
        ....
    }