标签: c# .net events event-handling clr
这是一个基本问题,但我意识到我不知道答案。
在dotnet中,如果没有订阅它,仍会引发一个事件? 事件是否知道是否有订阅者?
答案 0 :(得分:1)
当然它知道,事件基本上是一个具有语法糖的委托,每个委托都是MulticastDelegate的继承者,其中包含订阅者列表。从技术上讲,它就像一个链表,其中一个订阅者有一个指向下一个订阅者的链接(委托是不可变的)。看一下MulticastDelegate dotnet核心源代码。