在.dotnet(c#)中,如果没有订阅它,仍会引发一个事件?

时间:2018-02-03 00:38:11

标签: c# .net events event-handling clr

这是一个基本问题,但我意识到我不知道答案。

在dotnet中,如果没有订阅它,仍会引发一个事件? 事件是否知道是否有订阅者?

1 个答案:

答案 0 :(得分:1)

当然它知道,事件基本上是一个具有语法糖的委托,每个委托都是MulticastDelegate的继承者,其中包含订阅者列表。从技术上讲,它就像一个链表,其中一个订阅者有一个指向下一个订阅者的链接(委托是不可变的)。看一下MulticastDelegate dotnet核心源代码。