顶一下,我也想问,如果有 A() 方法和B()方法,我想通过参数设定比如C方法调用A或者B 我用C("A"),直接就运行A(),而不用 if 判断。

解决方案 »

  1.   

    就是比如我有一个类。类里有很多方法,我在程序运行中实例化了这个类,有没有什么方法,通过方法名字符串调用方法,不是通过
    case "a"
     b.a()
    这样
      

  2.   

    using System;
    using System.Reflection;namespace ConsoleApplication1
    {
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    Type t = Type.GetType("ConsoleApplication1.A");
    t.InvokeMember("Output",BindingFlags.InvokeMethod,null,null,null);
    Console.ReadLine();
    }
    }
    class A
    {
    public static void Output()
    {
    Console.WriteLine("class A");
    }
    }
    class B
    {
    public static void Output()
    {
    Console.WriteLine("class B");
    }
    }
    }
      

  3.   

    "ConsoleApplication1.A" 可以让用户输入,必须包含动态运行类的全名。
      

  4.   

    如果有类A,B,B继承于A,通过反射只能调用B自身的方法,不能调用其父类的方法啊?