【C#学习笔记】反射的简单用法

常见的使用反射的场景:
程序在运行时动态地访问类的成员,如获得类的变量、方法。

例如:用反射给本类的变量赋值。

public class Student{
    public string studentName = "小王";
    public void Test()
    {
        Type type = this.GetType(); // 获得本类的类型
        PropertyInfo propertyInfo = type.GetProperty("studentName"); // 获得本类的成员变量
        propertyInfo.SetValue(this, "老王"); // 修改本类的成员变量
    }
}

上面的代码,运行Test()方法后,能够重新给本类的变量赋值。通常经过别的操作得到新的值,然后将新的值做为参数传入该方法。

使用反射和泛型,可以使得接口类的设计通用型更强,但会降低代码可读性。报错时得Debug来一步步调试来看运行时反射得到是数据类型。

其他反射使用场景:获得类的方法并调用等。

学习:

http://www.runoob.com/csharp/csharp-reflection.html

原文地址:https://www.cnblogs.com/guxin/p/csharp-how-to-use-reflection.html