zoukankan      html  css  js  c++  java
  • 反射、委托

    反射 : Reflection
    1. 基类调用派生类时候用
    2. 在运行时才确定要调用哪个类的时候用
    3. 在运行期 获取 模块 程序集 类 构造函数 属性方法的信息 以及实例化类,

    调用构造函数,属性,方法,事件,委托等……通过对类型动态实例化后,还可以用反射对其执行操作
    4. 如果在写代码的时候就能确定要调用的是哪个类,那直接调用当然好了。
    但很多场合(也许是为了通用性),要在运行期才能够决定需要调用的类型,那样就有必要用反射来取得类型的相关信息了

    委托 :
    1. 委托是可以申明的类型,方法看做委托的实例 ,所以说方法可以传递滴!
    (将方法作为参数传递),可以避免在程序中大量使用If-Else(Switch)等语句,同时使得程序具有更好的可扩展性。

    2. 使用委托可以将多个方法绑定到同一个委托的变量上( += 或 -=)


    3. 一个事件不管是不是声明为public,但是它实际上都是private,私有变量是不可以直接用等号(=)的,也就是说事件用=号来绑定一个函数是不好滴
    所有一般用封装了的 += , -= 实际上 += ”对应 add_XXX()方法, “-=”对应 remove_XXX()方法。


    4. 返回值都为void
    如果定义了返回值,那么多个订阅 者的方法都会向发布者返回数值,结果就是后面一个返回的方法值将前面的返回值覆盖掉了,
    因此,实际上只能获得最后一个方法调用的返回值。
    5.委托相当于C中的指针,它是类型安全的
    委托相当于老板,老板可以随意支配许多员工做事,也可以解雇员工,一个委托也可以绑定N多函数,也可以取消一些绑定

  • 相关阅读:
    Yii “CDbConnection failed to open the DB connection: could not find driver"解决办法
    安装多个PHP环境会导致phpinfo和php -v中查看到的PHP版本不一致
    sql pivot、unpivot和partition by用法
    sql把字符数组转换成表
    sql获取数组指定元素
    sql获取数组长度
    Razor基础语法
    ADO.NET基础
    Asp.Net网站统一处理错误信息
    WebApp页面开发小结
  • 原文地址:https://www.cnblogs.com/hobby0524/p/3251633.html
Copyright © 2011-2022 走看看