反射

这两天研究了一下反射,将一个简单的反射调用记录一下,以防遗忘

直接上代码了

要被反射的类User:

using System;
using System.Collections.Generic;
using System.Text;

namespace FanShe
{
    public class User
    {
        public User( string name)
        {
            this . Name = name;
        }

        public User( string name , int age)
        {
            this . Name = name;
            this . Age = age;
        }

        public string Name
        {
            get;
            set;
        }

        public int Age
        {
            get;
            set;
        }

        public void Display()
        {
            Console . WriteLine( string . Format( "姓名:{0},年龄:{1}" , this . Name , this . Age));
        }

        public string GetUserInfo( string sex)
        {
            return string . Format( "姓名:{0},年龄:{1},性别:{2}" , this . Name , this . Age , sex);
        }
    }
}

反射调用的代码,注释写的很清楚了

using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;

namespace FanShe
{
    public class Test
    {
        public void Start()
        {
            //获取类型信息
            Type type = Type.GetType("FanShe.User");

            //构造函数的参数
            object[] constuctParms = new object[] { "ysuhy",25 };
            //创建对象
            object obj = Activator.CreateInstance(type, constuctParms);


            //调用Display方法
            MethodInfo method = type.GetMethod("Display");
            BindingFlags flag = BindingFlags.Public | BindingFlags.Instance;//调用方法的一些标志位,这里的含义是Public并且是实例方法,这也是默认的值
            //调用方法,用一个object接收返回值
            method.Invoke(obj, flag, Type.DefaultBinder, null, null);


            //调用GetUserInfo方法
            method = type.GetMethod("GetUserInfo");
            flag = BindingFlags.Public | BindingFlags.Instance;//调用方法的一些标志位,这里的含义是Public并且是实例方法,这也是默认的值
            //调用方法,用一个object接收返回值
            object result = method.Invoke(obj, flag, Type.DefaultBinder, new object[] { "男" }, null);

            Console.WriteLine("通过反射调用方法GetUserInfo获取到的结果" + result);
        }
    }
}

执行结果:

反射

你可能感兴趣的:(反射)