.net中 关于反射的详细介绍(6)

Console.ReadKey();
        }
    }


上面例子,可以看出只显示了Myclass类显示定义的公用方法。private int sum()也不显示。

使用反射调用方法

上面我们通过反射获取到了类中的所有信息,下面我们就再使用反射调用通过反射获取到的方法。

要调用反射获取到的方法,则需要在MethodInfo实例上调用Invoke() 方法。Invoke()的使用,在下面例子中演示,说明。

下面例子是:先通过反射获取到要调用的方法,然后使用Invoke()方法,调用获取到的指定方法;

复制代码 代码如下:


View Code

class MyClass
    {
        int x;
        int y;
        public MyClass(int i, int j)
        {
            x = i;
            y = j;
        }
        private int sum()
        {
            return x + y;
        }
        public bool IsBetween(int i)
        {
            if (x < i && i < y) return true;
            else return false;
        }
        public void Set(int a, int b)
        {
            Console.Write("Inside set(int,int).");
            x = a;
            y = b;
            Show();
        }
        public void Set(double a, double b)
        {
            Console.Write("Inside set(double,double).");
            x = (int)a;
            y = (int)b;
            Show();
        }
        public void Show()
        {
            Console.WriteLine("x:{0},y:{1}", x, y);
        }
    }

class InvokeMethDemo
    {
        static void Main()
        {
           Type t=typeof(MyClass);
           MyClass reflectOb = new MyClass(10, 20);
           reflectOb.Show();  //输出为: x:10, y:20
           MethodInfo[] mi = t.GetMethods();          
           foreach (MethodInfo m in mi)
           {
               ParameterInfo[] pi = m.GetParameters();

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjgpds.html