文章著作权归作者所有。转载请联系作者,并在文中注明出处,给出原文链接。
本文原更新于作者的github博客,这里给出链接。

委托

委托的实质是一个类。

// 委托定义
delegate ReturnType DelegateName([parameters]);
// 委托声明
DelegateName delegateInstance = new DelegateName();
// 委托赋值
delegateInstance = delegateFunctionName1;
// 绑定/解绑委托
delegateInstance += delegateFunctionName2;
delegateInstance -= delegateFunctionName1;

事件

事件是封装了委托的类。

当事件被声明为类的内部成员时,它总会被编译为private类型,即无法使用=赋初值,只有+=和-=操作。

delegate ReturnType DelegateName([parameters]);
// 事件声明
event DelegateName eventName;
// 添加/删除事件
eventName += event1;
eventName -= event2;

事件委托与匿名方法、lambda表达式

delegate ReturnType DelegateName([parameters]);
// 匿名方法
DelegateName delegateInstance = delegate([parameters]){ return something; };
// lambda表达式
DelegateName delegateInstance = ([parameters]) => { return something; };
DelegateName delegateInstance = ([parameters]) => { return something; };
DelegateName delegateInstance =   parameter    => { return something; };
DelegateName delegateInstance =   parameters   =>          something   ;

应用

Observer Pattern(观察者模式)

转载于:https://www.cnblogs.com/Li-F/p/10739170.html

Event and Delegate相关推荐

  1. C# event 和delegate的区别

    其实说实话 event和delegate 并没有什么特别大的区别,event其实就是特殊化的delegate 1.调用上event只能+=和-=,这样做的意义是为了防止,其余的方法覆盖,但是deleg ...

  2. c# 中 event 和 delegate 的区别

    event 是一种特殊的delegate. 1)event 在本类(派生类也不行)之外不能触发.(如果是public的在类外或protected的在派生类中可以使用 += 或 -=, 但不能调用该ev ...

  3. Event delegate

    "猫叫老鼠跑"来记忆委托和事件 主要事件执行类: class //函数入口 { static void main(string[] args) { cat cat = new ca ...

  4. 3.Event Delegate

    书目:MCTS 70-536: TS: .NET Framework 2.0-Application Development Foundation  章节:Chapter 1: Framework F ...

  5. c#的delegate和event

    delegate是什么 委托(delegate) 是存有对某个方法的引用的一种引用类型变量,引用可在运行时被改变.如果不好理解,可以把委托理解成为函数指针,但它们是有区别的. delegate和C++ ...

  6. C# 关键字Event

    1>>> 在委托实例前,不加event,那这个委托就是一个普通的委托,我们可以用别的函数调用,也可以直接用对象调用,但加上关键字之后,只能用成员函数调用 public delegat ...

  7. c#中delegate使用

    引言 Delegate是Dotnet1.0的时候已经存在的特性了,但由于在实际工作中一直没有机会使用Delegate这个特性,所以一直没有对它作整理.这两天,我再度翻阅了一些关于Delegate的资料 ...

  8. C# Delegate 使用

    Delegate, Event Delegate其实就相当于C++/C里面的函数指针.用法如下: 1.最常规的使用     class Program     {         public del ...

  9. 谈C#中的Delegate

    引言 Delegate是Dotnet1.0的时候已经存在的特性了,但由于在实际工作中一直没有机会使用Delegate这个特性,所以一直没有对它作整理.这两天,我再度翻阅了一些关于Delegate的资料 ...

最新文章

  1. 我酸了~腾讯员工平均月薪 7.6 万 | 每日趣闻
  2. C++ sizeof 使用规则及陷阱分析【转】
  3. 数据库实时转移之Confluent介绍(一)
  4. centos7安装minikube
  5. 一个例子彻底搞懂C++的虚函数和纯虚函数
  6. 【原创】最值得推荐wince应用和wince驱动入门书籍
  7. ARM 移植 PPPD
  8. centos安装nginx,配置负载均衡
  9. jad 反编译eclipse操作步骤
  10. Java操作DB2 XML数据实践
  11. 【Linux】Linux基本操作指令
  12. 动态相关系数dcc_常相关系数(CCC)和动态条件相关系数(DCC)
  13. 塔防游戏制作教程(二)
  14. 微信小程序设计第一期第六节:图片大小的调整
  15. 结对开发——求二维环形数组所有子矩阵最大和的问题
  16. 【后端学习】后端技术要点总结【一】
  17. linux挂载u盘在哪个文件夹,如何在Linux挂载U盘
  18. 与爱同行,育润走进贫困家庭,助推公益事业
  19. Python的生成器函数
  20. 第十二届蓝桥杯--第二场--B-双阶乘

热门文章

  1. linux安装spec编译器,RPM包制作之Spec文件参数详解
  2. python tempfile cleanup_python tempfile 模块---生成临时文件和目录
  3. 电脑销售渠道_双十一遇上英雄联盟S10,苏宁游戏装备销售增长258%
  4. centos 下载oracle_Linux镜像下载大全
  5. 微信小程序开发03-这是一个组件
  6. 图形图像技术在手游中的潜在应用
  7. easyui numberbox一些常用属性,方法
  8. 无法解析此远程名称: 'www.***.com' 解决办法(转)
  9. windows相关知识点分析
  10. 通过Windows API 创建窗口的过程理解windows消息机制