C#中委托的基本用法总结

 更新时间:2013年09月30日 09:41:21   作者:  
以下是对C#中委托的基本用法进行了详细的总结分析,需要的朋友可以过来参考下。希望对大家有所帮助

原则:

1、委托本质就是个指针,一个函数指针,拿到函数的首地址即可;

C#的委托加了安全性,体现在对于函数指针所引用的函数指令块的类型检测,比如返回值,参数类型,参数个数

而C中的函数指针被赋值的时候(在C#中,就是委托实例化的时候,因为C#中后台将委托处理成一个类了,封装了哈)被赋予的值是否满足类型的种种条件(返回值,参数类型,参数个数)不做检查,由用户给出保证,C#会编译提示出来

2、委托实例化的过程,也就是委托对象构造的过程,从底层来讲,即将一个现存的函数代码指令块的内存地址(静态函数,实例的非静态成员函数都行)赋值给这个委托;这个赋值过程,就是委托的构造函数要做的事情,所以,委托的构造函数一定有一个参数,这个参数在后台让系统处理,就是满足类型检查的函数指针,所要检查的类型(返回值,参数类型,参数个数)都是在声明定义委托的时候给出的。

3、委托实例化的两种方法:

1) A a = new A(静态方法名/实例.方法名);

2) A a = 静态方法名/实例.方法名;

委托调用的两种方法:

1)a.Invoke()

2)a()

用来构造委托的方法可以是静态方法,也可以是实例化对象的成员函数,本质是这段代码指令已经编译出来,分配了内存了,传递给委托的参数(本质就是这块指令数据的首地址)是有效的有意义的,从这个角度来理解,自然静态方法,实例方法都能用来构造、建立委托实例的了

相关文章

  • 浅析string 与char* char[]之间的转换

    浅析string 与char* char[]之间的转换

    与char*不同的是,string不一定以NULL('\0')结束。string长度可以根据length()得到,string可以根据下标访问。所以,不能将string直接赋值给char*
    2013-10-10
  • C语言关于二叉树中堆的创建和使用整理

    C语言关于二叉树中堆的创建和使用整理

    大家好,这里是针对二叉树中堆结构的顺序储存,整理出来一篇博客供我们一起复习和学习,如果文章中有理解不当的地方,还希望朋友们在评论区指出,我们相互学习,共同进步
    2022-08-08
  • c++ 开发中如何读写yaml配置文件

    c++ 开发中如何读写yaml配置文件

    这篇文章主要介绍了c++ 开发中如何读写yaml配置文件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • C语言实现日志备份守护进程的示例详解

    C语言实现日志备份守护进程的示例详解

    这篇文章主要为大家详细介绍了如何使用C语言开发一个简单的日志备份守护进程,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04
  • C++遍历map的实现示例

    C++遍历map的实现示例

    std::map是一种关联容器,它存储的是键值对,并且按键的顺序进行排序,本文主要介绍了C++遍历map的实现示例,感兴趣的可以了解一下,感兴趣的可以了解一下
    2025-04-04
  • C++ Custom Control控件向父窗体发送对应的消息

    C++ Custom Control控件向父窗体发送对应的消息

    这篇文章主要介绍了C++ Custom Control控件向父窗体发送对应的消息的相关资料,需要的朋友可以参考下
    2015-06-06
  • 基于C++ bitset常用函数及运算符(详解)

    基于C++ bitset常用函数及运算符(详解)

    下面小编就为大家带来一篇基于C++ bitset常用函数及运算符(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • C++实现raw_input的方法

    C++实现raw_input的方法

    这篇文章主要介绍了C++实现raw_input的方法,通过C++来实现Python中发raw_input的方法,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • 一文带你掌握C++中的继承

    一文带你掌握C++中的继承

    继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,本文详解介绍了C++中的继承,感兴趣的同学可以借鉴一下
    2023-05-05
  • C语言 数据结构堆排序顺序存储(升序)

    C语言 数据结构堆排序顺序存储(升序)

    这篇文章主要介绍了C语言 数据结构堆排序顺序存储(升序)的相关资料,需要的朋友可以参考下
    2017-05-05

最新评论