假设我有许多个方法,我要用各个方法的名字对它们进行调用,怎么办?就是像Process.Start()那样启动某个执行文件,但我这要启动的是某个方法

解决方案 »

  1.   

    可以用反射实现,假设本类有一个无参方法ABC:
    this.GetType().GetMethod("ABC").Invoke(this, null);其中null表示传给方法的参数,因为ABC没有形参,所以给null。
    你重点看下Invoke的帮助信息就明白了。
    这里ABC是个字符串,你可以动态设置,但整条语句必须合法,各个参数的意义要一致。
      

  2.   

    你修改实际的typeName和methodName:其实这些东西在网上查查反射,很容易找到各种方法或者属性的反射使用的。
    Type MyType1 = Type.GetType(“typeName”);
    object obj = Activator.CreateInstance(MyType1);
    MyType1.InvokeMember(“methodName”, BindingFlags.InvokeMethod, null, obj, args);