• 反射


    1.反射 是 程序可以访问,检测和修改它本身状态或者行为的一种能力。

    2.反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。
    然后,可以调用类型的方法或访问其字段和属性。

    3.反射使用场景

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

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

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

    4.反射优点

    Ø 使用了反射后,你的程序在更新的时候无需重新编译,只要将更新的Dll换掉即可完成程序的更新和升级。

    Ø 将反射和配置文件相结合,可以开发出功能随意增删改的软件,具备了极大地灵活性和扩展性。

    Ø 反射提高了程序的灵活性,降低了耦合性,提高了自适应能力,同时也大大提高了程序的复用性。

     

    5.反射缺点

    Ø 首先带来的一个很大的问题就是——性能问题,使用反射基本上是一种解释操作,用于字段和方法接入时要远慢于直接代码。

    Ø 使用反射会使程序内部逻辑模糊化,程序员在调试代码的时候希望看到清晰的程序逻辑,而反射却绕过了源代码,因此会带来一定的维护性问题,同时反射代码比相应的直接代码更加复杂。

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

     

    1.1 反射用途

    Ø 使用Assembly定义和加载程序集

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

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

    1.1 反射用途

    Ø 使用Assembly定义和加载程序集

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

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

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

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

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

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

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

    1.1 反射用途

    1.1 反射用途

    Ø 使用Assembly定义和加载程序集

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

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

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

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

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

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

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

    Ø 使用Assembly定义和加载程序集

     

    v

    1.1 反射用途

    Ø 使用Assembly定义和加载程序集

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

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

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

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

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

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

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

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

     

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

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    eclipse中如何复制用点分隔的全类名
    win7 64下暗黑世界V1.1 服务器端及客户端的安装及运行 成功
    Firefly Http通信简单介绍
    win7 不能启动 memcached 总是反回failde to start service
    win7 安装 memcached
    memcached完全剖析–1. memcached的基础
    【Firefly API 新版文档】Package dbentrust
    《暗黑世界GM管理后台系统》部署+功能说明
    [官方教程] 暗黑世界 客户端 配置文档
    MAC下《暗黑世界》客户端版本编译说明!!
  • 原文地址:https://www.cnblogs.com/zyx13966104797/p/11180063.html
Copyright © 2020-2023  润新知