C#高级篇 2
来源:互联网 发布:儿童读书软件 编辑:程序博客网 时间:2024/06/05 10:50
1.什么是委托:简单来说委托是一个类型
多播委托:委托也可以包含多个方法,这种委托叫做多播委托。使用多播委托就可以按照顺序调用多个方法,调用多播委托只能得到最后一个方法的返回值,一般我们把多播委托的返回类型声明为void。 如果通过委托调用的其中一个方法抛出异常,整个迭代就会停止。
匿名方法:另外一种使用委托的方式,不用去定义一个方法,应该说是使用匿名方法(方法没有名字)
Lambda表达式:从C#3.0开始,可以使用Lambda表达式代替匿名方法。只要有委托参数类型的地方就可以使用Lambda表达式。
事件(event):只能在类里边声明,成为类成员。 不能在方法里声明成局部变量。
2.事件与委托的联系和区别:
-事件是一种特殊的委托,或者说是受限制的委托,是委托一种特殊应用,只能施加+=,-=操作符。二者本质上是一个东西。
-event ActionHandler Tick; //编译成创建一个私有的委托示例, 和施加在其上的add, remove方法.
-event只允许用add,remove方法来操作,这导致了它不允许在类的外部被直接触发,只能在类的内部适合的时机触发。委托可以在外部被触发,但是别这么用。
-使用中,委托常用来表达回调,事件表达外发的接口。
-委托和事件支持静态方法和成员方法, delegate(void * pthis,f_ptr), 支持静态返方法时, pthis传null.支持成员方法时, pthis传被通知的对象.
-委托对象里的三个重要字段是, pthis, f_ptr, pnext,也就是被通知对象引用, 函数指针/地址, 委托链表的下一个委托节点.
- C#高级篇 2
- C#高级篇 5
- C#高级篇 7
- C#高级篇 8
- C#高级编程---反射2
- c#高级
- 高级C#
- C#高级应用之CodeDomProvider引擎篇
- Windows应用高级编程C#编程篇
- C#高级应用之CodeDomProvider引擎篇 .
- C#高级篇(二)---LINQ、反射、线程
- C#高级篇(三)---Socket 、TcpClient 、UdpClient
- c# 线程第四部分:高级话题2
- 《C#高级教程》学习笔记2
- 读书笔记(C#高级编程)
- c#高级编程
- c#高级编程
- C# 高级面试题目
- 【Kotlin开发Android】开始一个新项目
- CentOS安装JDK
- C++__程序设计初步
- eclipse调试快捷键
- 编写一个js函数用来求一个数组中各元素之积
- C#高级篇 2
- Linux--信号
- Linux内核移植步骤
- activemq事务与ack消息确认
- Linux按键驱动程序设计(3)-按键操作硬件实现
- 清除浮动的方法
- Android点击View改变字体颜色和边框背景
- 有趣的JavaScript(一)---let、const与var命令的区别
- 伪类和伪元素的区别