C#中委托链和事件有什么不同?新手求助!

来源:百度知道 编辑:UC知道 时间:2024/09/20 23:40:23
最近学了点C#语言,看到了些资料比较迷糊!委托(delegate)链可以实现几个动作的连动,后来有看了事件(event),书上把事件说的神乎其神的,但是我怎么感觉它跟委托链差不多,既然有了委托链为啥还要用事件呢!希望高人指点两者区别与适用情况,最好能多给小弟留些相关资料地址,看这地方比较迷糊,谢谢!

要记住事件是委托最好的应用程序。
委托是一个类,派生System.MulticastDelegate,委托类提供了初始化,添加,删除,和调用委托的公共接口。
委托属于引用类型,一个委托实例实际上是对一个或多个函数指针的一种抽象。
至于为什么要用委托,可以从上面看出,它是类型安全的,因为一个函数指针的非正常调用可能会有未知的实现。

事件的发生只会激发某个动作(如果有),而具体要做什么,这就是委托实例的调用列表中的方法的执行。两者从概念上讲没有共同点。所以你没区分清楚是因为还没有真正理解它们重要的用途。
看了一下网上的相关教程,内容很浅,不适合建立第一印象。
QQ496567848 可以推荐几本好书。

委托和事件不是同一个东西哦怎么能差不多呢?

事件是由一个委托购造的~

委托表示的是一类具有相同特征(返回值,参数和参数顺序)的函数,它可以把函数定义成变量
事件也是委托,特定的事件就是某个委托的实例

其实是一个东西,只是叫法不同 而且event关键字专门用来标识事件,它标识过的事件可以在"类名."时候出来 前面是个闪电符号

楼上的解释没错,你其实就把事件理解为委托的一个实例来用就可以了。

两者比较类似!事件带有event关键字,而委托没有,但是委托的作用就是指向事件