C#反射(Reflection)

反射:就是解析过程(把object里面的成员,字段,属性,方法通过类型gettype方法解析出来)

程序集包含模块,而模块包含类型,类型又包含成员,反射则提供了封装程序集、模块和类型的对象。

作用:1.动态创建类的实例(通过assembly程序集 或通过activator创建实例对象  两个是区别最下面有)
	 2.从现有对象中获取类型(通过obj的gettype得到类型,通过类型的GetMethods方法解析出来object里面的成员,
	 字段,方法,特性,出来之后就可以调用或者赋值。)

反射的优缺点:
优点:
1、提高程序的灵活性和扩展性。
2、降低耦合性,提高自适应能力。
3、允许程序创建和控制任何类的对象,无需提前硬编码目标类。
缺点:
1、性能问题:反射基本上是一种解释操作,用于字段和方法接入时要远慢于直接代码。因此反射机制主要应用在对灵活性和拓展性要求很高的系统框架上,普通程序不建议使用。
2、逻辑问题:对于程序员来说希望在源代码中看到程序的逻辑,但是反射却绕过了源代码的技术,所以反射代码维护起来会更加复杂。

对于反射已经有所了解,那么讲到反射必须要说的2个点要记下来:
1.反射通过obj的gettype得到类型,通过类型的GetMethods方法解析出来object里面的成员,字段,方法,特性,出来之后就可以调用或者赋值。
2.反射通过assembly程序集 或者通过过activator创建实例对象

最后一个反射的例子加深理解:

 public class Room
  {
   
   internal int id;
    public int Id
    {
   
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值