ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

反射

2019-07-13 12:00:33  阅读:195  来源: 互联网

标签:反射 数据类型 是否是 指示 使用 类型


反射是程序可以访问,监测和修改它本身状态或者行为的一种能力。   反射动态地创建类型的实例,将绑定到现有对象或由现有对象获取类型然后可以调用类型的方法或访问其字段和属性。   优点:(1)反射提高了应用程序的灵活性和扩展性
          (2)降低耦合性,提高自适应能力
          (3)他允许程序创建和控制任何类的对象,无需提前硬编码目标类   缺点:(1)首先带来的一个很大的问题就是——性能问题,使用反射基本上是一种解释操作,用于字段和方法接入时要远慢于直接代码
          (2)代码维护不是很容易   反射用途     使用Assembly定义和加载程序集

    使用Module了解包含模块的程序集以及模块中的类等

    使用ConstructorInfo了解构造函数的名称、参数、访问修饰符

    使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符

    使用FieldInfo了解字段的名称、访问修饰符

    使用EventInfo了解事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等

    使用PropertyInfo了解属性的名称、数据类型、声明类型、反射类型和只读或可写状态等,获取或设置属性值

    使用ParameterInfo了解参数的名称、数据类型、是输入参数还是输出参数,以及参数在方法签名中的位置等

 

反射使用场景

      有时不知道具体的类型,可以通过dll去得到类的对象

      某些特殊方法,传过来的是泛型类,需要通过反射处理某些特殊的业务

      通用方法DataTable和List<T>的相互转化时需要用到反射

Type类的属性:

   Name 数据类型名
        FullName 数据类型的完全限定名(包括命名空间名)
        Namespace 定义数据类型的命名空间名
        IsAbstract 指示该类型是否是抽象类型
        IsArray   指示该类型是否是数组
        IsClass   指示该类型是否是类
        IsEnum   指示该类型是否是枚举
        IsInterface    指示该类型是否是接口
        IsPublic 指示该类型是否是公有的
        IsSealed 指示该类型是否是密封类
        IsValueType 指示该类型是否是值类型

 

标签:反射,数据类型,是否是,指示,使用,类型
来源: https://www.cnblogs.com/wxj2/p/11180064.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有