c# 定义委托和使用委托(事件的使用)
使用委托时要先实例化,和类一样,使用new关键字产生委托的新实例,然后将一个或者多个与委托签名匹配的方法与委托实例关联。随后调用委托时,就会调用所有与委托实例关联的方法。
与委托关联可以是任何类或者结构中的方法,可以是静态方法,只要是可以访问的方法都可以。创建一个委托类型使用关键字delegate(委托)
一个委托实例,关联三个方法
移除一个委托实例中的方法 使用“-”
将方法作为参数传递
委托可以让方法作为参数传递给其它方法。
事件自身就是委托类型,由于委托可以绑定和调用多个方法,所以会为事件的处理带来方便。类型只需要对外公开事件,就可以与外部的其它地方关联,从而实现事件订阅
要在类中声明事件,首先要定义用来作为事件封装类型的委托,用event关键字来声明事件。为了允许派生类重写引发事件的代码,通常会在类中声明一个受保护的方法,习惯上
命名On<事件名>
protected virtual 表示受保护的,virtual
关键字用于修改方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。
由于不同的事件要传递的参数不同,更多时候是从EventArgs类派生的子类的实例,显然EventHandler委托时不能满足各种情况的。
如果针对不同的事件也定义一个对应的委托,数量一旦多起来,不好管理,为了解决这个问题,.NET类库提供了一个带有泛型参数的事件
处理委托。
public delegate void EventHandler<TEventArgs>(object sender,TEventArgs e); TEventArgs 是一个泛型参数
转载于:https://www.cnblogs.com/hjxzjp/p/7667536.html
c# 定义委托和使用委托(事件的使用)相关推荐
- C#委托、类和事件的验证【C#】
C#委托.类和事件的验证 题目描述 程序由两部分组成,如下代码所示.第一部分定义了委托.类和事件.第二部分进行验证. using System; namespace HelloWorldApplica ...
- C#委托,多播委托,匿名委托,事件
委托 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递.事件是一种特殊的委托. 委托是方法的抽象,它存储的就是一系列具有相同签名和返回类型的方法的地址.调用委托的时候,委 ...
- js原生事件委托写法,jquery事件委托写法
什么是事件委托: 事件委托--给父元素绑定事件,用来监听子元素的冒泡事件,并找到是哪个子元素的事件.(不理解冒泡的可以去百度下) 定义: 利用事件冒泡处理动态元素事件绑定的方法,专业术语叫事件委托. ...
- C#:钩子、委托、匿名、事件、结构体转字节数组、多线程操纵控件、UDP
事件 C#事件分为几个步骤: 定义事件 定义处理函数 为事件添加处理函数 激活事件 事件被激活后自动调用处理函数. public event messagehandleer shenzhijiangl ...
- C#学习笔记之——委托、线程、事件、lamda表达式
1.委托--delegate\Action 1.1 delegate 委托可以理解为函数指针. 委托delegate关键词,Delegate和delegate都可以,这个类似于string和Strin ...
- 使用事件委托降低重复的事件绑定,从而降低dom操作的对性能的消耗[兼容IE版]
使用事件委托降低重复的事件绑定,从而降低dom操作的对性能的消耗[兼容IE版] 原理: W3C将DOM2.0模型中事件处理流程分为三个阶段: 一.事件捕获阶段: 当某个元素触发某个事件(如onclic ...
- 【从Java转C#】第八章:委托、lambda、事件
目录 委托.lambda表达式.事件 委托[Delegate] 简介 声明委托 实例化委托 Action 和 Func Action:表示引用一个 void 的方法 Func:允许调用带返回类型的方法 ...
- 委托、多播委托(MulticastDelegate)
委托.多播委托(MulticastDelegate) 多播委托(MulticastDelegate)继承自 Delegate ,表示多路广播委托:即,其调用列表中可以拥有多个元素的委托.实际上,我们自 ...
- C# 委托、匿名委托、Lambda表达式详解
文章目录 委托 委托概述 声明委托类型 创建委托对象 给委托赋值 组合委托 为委托添加方法 从委托移除方法 调用委托 委托的示例 调用带有返回值的委托 调用带有引用参数的委托 匿名方法 使用匿名方法 ...
- C语言中的函数指针、函数的直接/间接调用、C# 委托(自定义委托、内置泛型委托、委托的实例化、委托的一般使用(模板方法、回调方法)、泛型委托、多播委托、同步/异步使用委托)
文章目录 C语言中的函数指针 函数的直接调用与间接调用 Java中没有与委托对应的功能实体 C# 委托 C# 自定义委托类型 C# 内置泛型委托类型 委托的实例化 委托也支持泛型的使用 委托的一般使用 ...
最新文章
- 不同品牌android手机ui,各大安卓手机品牌里,系统UI设计对比,谁赢了?
- golang 获取切片 slice 第一个 最后一个 元素
- Speerio Skinergy 'Image' is ambiguous 错误
- Python | 四种运行其他程序的黑科技
- C++ 四种类型转换
- go设置后端启动_使用 Go Wails 框架来构建桌面应用(Go+Vue.js)
- hive 查询是否包含字符串_oracle判断一个字符串中是否包含另外一个字符串
- 昔日网瘾少年,现在用AI教你打守望先锋
- 镜头对摄像机性能的影响
- 正则表达式[\w]+,\w+,[\w+] 三者区别? [],[ABC]+,[\w./-]+ 表达什么?
- 用exec()函数执行新程序
- 杨昕立计算机学院,写在告别之前——那些来自辅导员们的悄悄话
- 《通信网》专题八:接入网技术
- python 获取年份_如何从Pythondate时间对象中提取年份?
- cache 是什么意思 它包括的L1,L2,L3分别是什么东西
- linux lsmod命令 及相关信息
- PHP用file_get_contents 显示其他服务器图片
- 某车联网App 通讯协议加密分析(四) Trace Code
- 树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant
- 微信小程序转账(简单流程代码)tp6接口