C#——事件

简介: C#——事件

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

关于事件的使用:

申明语法:

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

事件的使用:

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

事件相对于委托的区别:

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

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

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

事件和委托的区别:

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

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

主要区别:

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

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

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

目录
相关文章
|
2月前
|
C#
c# Gridview 点击checkbox 触发的事件
c# Gridview 点击checkbox 触发的事件
|
消息中间件 安全 API
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
SendMessage/PostMessage API 可以实现发送系统消息,这些消息可以定义为常见的鼠标或键盘事件、数据的发送等各种系统操作......
4374 1
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
|
2月前
|
存储 安全 C#
C# - 委托与事件
这篇文档介绍了C#中的委托和事件。委托是存储方法引用的类型,支持回调、事件处理,具有引用方法、类型安全、多播性等特性,并在异步编程中发挥作用。事件是委托的封装,提供保护和订阅机制,防止外部直接访问。当需要在类内部控制方法调用,防止外部误触发时,可使用事件。
|
23天前
|
C#
C#||委托和事件的实例
C#||委托和事件的实例
|
2月前
|
C#
C# Dev解决gridview1_SelectionChanged和gridview1_RowCellClick事件触发两次等问题
C# Dev解决gridview1_SelectionChanged和gridview1_RowCellClick事件触发两次等问题
C# Dev解决gridview1_SelectionChanged和gridview1_RowCellClick事件触发两次等问题
|
2月前
|
C#
C# 禁止ComboBox滚动事件细谈
C# 禁止ComboBox滚动事件细谈
|
2月前
|
Java C# C++
【从Java转C#】第八章:委托、lambda、事件
【从Java转C#】第八章:委托、lambda、事件
|
10月前
|
C# Windows
C#OOP之十一 委托和事件
C#OOP之十一 委托和事件
47 0
|
11月前
|
安全 C#
C#委托事件的区别
C#委托事件的区别
106 0
|
11月前
|
监控 安全 开发工具
Baumer工业相机堡盟工业相机如何通过BGAPI SDK使用DeviceEvents“设备事件”记录相机事件的各类时间(C#)
Baumer工业相机堡盟工业相机如何通过BGAPI SDK使用DeviceEvents“设备事件”记录相机事件的各类时间(C#)
73 0