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()

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

相关文章

  • 浅谈内联函数与宏定义的区别详解

    浅谈内联函数与宏定义的区别详解

    本篇文章是对内联函数与宏定义的区别进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 使用map实现单词转换的实例分析

    使用map实现单词转换的实例分析

    本篇文章是对使用map实现单词转换的代码实例进行了纤细的分析介绍,需要的朋友参考下
    2013-05-05
  • 详解C语言在STM32中的内存分配问题

    详解C语言在STM32中的内存分配问题

    这篇文章主要介绍了C语言在STM32中的内存分配,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Visual Studio Code运行程序时输出中文成乱码问题及解决方法

    Visual Studio Code运行程序时输出中文成乱码问题及解决方法

    这篇文章主要介绍了解决Visual Studio Code运行程序时输出中文成乱码问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • C语言中getchar()的原理以及易错点解析

    C语言中getchar()的原理以及易错点解析

    用getchar()函数读取字符串时,字符串会存储在输入缓冲区中,包括输入的回车字符,下面这篇文章主要给大家介绍了关于C语言中getchar()的原理以及易错点解析的相关资料,需要的朋友可以参考下
    2022-03-03
  • C++实现投骰子的随机游戏

    C++实现投骰子的随机游戏

    这篇文章主要为大家详细介绍了C++实现投骰子的随机游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Qt QChart 创建图表的实现方法

    Qt QChart 创建图表的实现方法

    这篇文章主要介绍了Qt QChart 创建图表的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 详细分析C++ 多态和虚函数

    详细分析C++ 多态和虚函数

    这篇文章主要介绍了C++ 多态和虚函数的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C++ 单链表的基本操作(详解)

    C++ 单链表的基本操作(详解)

    下面小编就为大家带来一篇C++ 单链表的基本操作(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • C++11右值引用和std::move语句实例解析(推荐)

    C++11右值引用和std::move语句实例解析(推荐)

    右值引用(及其支持的Move语意和完美转发)是C++0x将要加入的最重大语言特性之一。这篇文章主要介绍了C++11右值引用和std::move语句实例解析,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03

最新评论