zoukankan      html  css  js  c++  java
  • C#中关于委托的分析

    委托的定义: public delegate 返回类型 FuncDelegate(参数列表); 这里是一个类型,可以定义一个FuncDelegate类型的变量 而定义的这个变量就可以存放与这个委托具有相同返回值类型、相同参数类型的方法名

    委托与函数指针的区别:

    函数指针是面向过程的,它指向内存空间的一片地址,再由地址找到函数的代码块,去执行代码。 委托是面向对象的,是一个类(用Reflector查看,是new出来的),实际上是将方法名作为参数传递进来进行了封装,在调用的时候直接调用这个方法。

    委托本质是一个类。委托内部(在其父类MulticastDelegate)有一个集合(invocationList)来维护方法列表,执行的时候是调用方法列表中的方法,即用委托名.Invoke();同时有一个invocationCount变量记录方法列表中方法的个数,而对于实例,是将其存放在基类Delegate的Target中的。(如下例的name字段)

    下图是对委托原理的大致总结:

  • 相关阅读:
    async
    subing用法
    vue中子组件调用父组件的方法
    Python—创建目录
    Python—访问限制
    Python—实例方法,实例数据(类属性,实例属性)
    Python—对象,类
    tail命令
    head命令
    pwd命令
  • 原文地址:https://www.cnblogs.com/diandianxinghen/p/3229091.html
Copyright © 2011-2022 走看看