反射

反射


Type 类

Type t = typeof(MyClass);
  • 可以通过 t.Name​ 获取类名

  • 可以通过 t.Namespace​ 获取类所在的命名空间

  • 可以通过 t.Assembly​ 获取类的程序集的说明(程序名、版本等)

  • 可以通过 t.GetFields()​ 获取类中 public​ 修饰的字段

    FieldInfo[] fis = t.GetFields();
    
    // 打印类的字段
    foreach(FieldInfo fi in fis)
    {
        Console.WriteLine(fi.Name);
    }
    
  • 可以通过 t.GetProperties()​ 获取类的属性

    PropertyInfo[] pis = t.GetProperties();
    
    foreach(PropertyInfo pi in pis)
    {
        Console.WriteLine(pi.Name);
    }
    
  • 可以通过 t.GetMethods()​ 获取类的方法

    MethodInfo[] mis = t.GetMethods();
    foreach(MenthodInfo mi in mis)
    {
        Console.WriteLine(mi.Name);
    }
    

通过类的对象来获取 Type 对象

MyClass myClass = new MyClass();
Type t = myClass.GetType();

一个类只有一个 Type 对象

posted @ 2023-10-04 14:39  天空之城00  阅读(6)  评论(0)    收藏  举报