一直以为C#的接口中不能定义事件呢, 因为我们知道接口中不能定义变量.

(现在才发现Event并不是定义变量, 而是定义了两个方法, 其IL如下:)
 
  

 可以看到, 我们定义的事件ddd, 被展开成了两个函数add_ddd和remove_ddd, 而且是抽象的, 需要我们在子类中实现.

那如何在子类中实现这个两个函数呢?  如下:

class my : MyInterface
    {
        public event Mydelegate ddd;

        public void Fire()
        {
            ddd.BeginInvoke(10, null, null);
        }
    }


注意: 我们定义自己的Delegate时,  其实编译器把它展开为了一个类, IL如下:

 end of class Crash.Mydelegate



 

相关文章:

  • 2022-02-01
  • 2022-12-23
  • 2021-09-13
  • 2021-06-21
  • 2022-12-23
  • 2021-11-27
  • 2021-09-24
猜你喜欢
  • 2021-12-29
  • 2022-12-23
  • 2021-09-07
  • 2021-10-03
  • 2021-11-28
  • 2022-12-23
  • 2022-01-08
相关资源
相似解决方案