(现在才发现Event并不是定义变量, 而是定义了两个方法, 其IL如下:)
可以看到, 我们定义的事件ddd, 被展开成了两个函数add_ddd和remove_ddd, 而且是抽象的, 需要我们在子类中实现.
那如何在子类中实现这个两个函数呢? 如下:
class my : MyInterface
{
public event Mydelegate ddd;
public void Fire()
{
ddd.BeginInvoke(10, null, null);
}
}
注意: 我们定义自己的Delegate时, 其实编译器把它展开为了一个类, IL如下: