C#——事件

简介: C#——事件

事件是基于委托的存在,事件是委托的安全包裹,事件可以让委托的使用更具有安全性,事件是一种特殊的变量类型。事件是类或对象向其他类或对象通知发生的一种特殊签名的委托。它的本意是对委托的封装,它在外部只能被订阅或取消订阅,但是不能发布。只能通过内部的公开方法,在方法内部触发事件,这样可以使得程序更加的安全。

关于事件的使用:

申明语法:

访问修饰符 event 委托类型 事件名;

事件的使用:

事件是作为成员变量存在于类中,委托怎么用事件就怎么用。

事件相对于委托的区别:

不能在类外部赋值,不能再头外部调用

要注意的是,它只能作为成员存在于类和接口以及结构体中。

如果我们经常希望某个事件发生了以后,就做某种处理, 比如,收到网络事件后做响应的处理。这个时候,我们可以定义一个委托变量,将有事件发生后要处理的函数对象都保存进去, 当有事件发生的时候,触发这个委托,这样,之前的那些函数都会被调用到。

事件和委托的区别:

事件和委托的使用基本是一模一样的;事件就是特殊的委托。

两者最基本的区别是,前者适合那些需要带返回值的委托,后者适合那些不带返回值的委托。Func 所引用的方法接收一个或者多个入参并带有一个返回值,Action所引用的方法接收一个或者多个参数并且没有返回值,换句话说,你的委托所引用的方法没有返回值,这时候适合用 Action。

主要区别:

1.事件不能再外部使用赋值=符号,只能使用+、-,委托哪里都能用。

2.事件不能再外部执行 委托哪里都能执行。

3.事件不能作为函数中的临时变量的委托可以。

目录
相关文章
|
23天前
|
C#
c# Gridview 点击checkbox 触发的事件
c# Gridview 点击checkbox 触发的事件
|
消息中间件 安全 API
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
SendMessage/PostMessage API 可以实现发送系统消息,这些消息可以定义为常见的鼠标或键盘事件、数据的发送等各种系统操作......
3808 1
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
|
23天前
|
C#
C# Dev解决gridview1_SelectionChanged和gridview1_RowCellClick事件触发两次等问题
C# Dev解决gridview1_SelectionChanged和gridview1_RowCellClick事件触发两次等问题
C# Dev解决gridview1_SelectionChanged和gridview1_RowCellClick事件触发两次等问题
|
23天前
|
C#
C# 禁止ComboBox滚动事件细谈
C# 禁止ComboBox滚动事件细谈
|
5月前
|
Java C# C++
【从Java转C#】第八章:委托、lambda、事件
【从Java转C#】第八章:委托、lambda、事件
|
8月前
|
C# Windows
C#OOP之十一 委托和事件
C#OOP之十一 委托和事件
37 0
|
9月前
|
安全 C#
C#委托事件的区别
C#委托事件的区别
|
9月前
|
监控 安全 开发工具
Baumer工业相机堡盟工业相机如何通过BGAPI SDK使用DeviceEvents“设备事件”记录相机事件的各类时间(C#)
Baumer工业相机堡盟工业相机如何通过BGAPI SDK使用DeviceEvents“设备事件”记录相机事件的各类时间(C#)
64 0
|
10月前
|
移动开发 JSON API
C#-钉钉开发H5应用-事件订阅
C#-钉钉开发H5应用-事件订阅
221 0
|
10月前
|
JSON API 数据安全/隐私保护
C#-钉钉事件订阅-接口回调
C#-钉钉事件订阅-接口回调
230 0