没有event用delegate功能上完全相同。
event内部使用了一个delegate的变量,并且定义了add/remove两个函数用于添加/删除event handler,C#编译器使用+=/-=简化event的操作。这和property和Field的关系类似。
用ildasm.exe可以看到上面这些信息。