C#反射

  • 有关程序及其类型的数据被称为元数据(metadata)保存在程序的程序集中
  • 一个运行的程序查看本身的元数据或其他程序的元数据的行为叫做反射
  • 使用 System.Reflection 命名空间
Type 类
  • 前情概要
    • BCL声明了 一个叫 Type抽象类,不能有实例
    • 在运行时 CLR会创建从Type派生类的实例
    • 访问实例时,CLR会返回Type基类的引用
  • Type类的成员
    • 属性
      • Name
      • Namespace
      • Assembly
    • 方法
      • GetFields 返回类型的字段列表
      • GetProperties 返回类型的属性列表
      • GetMethods 返回类型的方法列表
注意事项
  • 不管创建的类型有多少实例,只有一个Type对象会关联到所有这些实例
  • 对于程序中用到的每一个类型,CLR都会创建一个Type类型的对象
  • 程序用到的每一个类型都会关联到独立的Type类对象(比如父类,子类,子类也会有相应的类型对象)
获取类型的方法
  • object类型包含有一个GetType的方法,返回对实例Type对象的引用
  • 每一个类型都是继承自object,可以在任何类型对象上使用GetType方法获得Type对象
  • Type t = myInstance.GetType();
  • 通过typeof运算符来获取Type对象,只需要提供类型名作为操作数,就会返回Type对象的引用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值