猿问

事件需要显示实现add/remove吗?

在很多情况下,使用事件时直接:

public event EventHandler<CommentCancelEventArgs> AddingComment;

而在看一些代码时,发现是在类的内部声明一个委托类型的变量,然后提供add/remove来进行注册

public MyDelegate my;
        public event MyDelegate OnDelegate
        {
            add
            {
                my += value;
            }
            remove
            {
                my -= value;
            }
        }
        public void Do()
        {
            if (my != null)
                my(this, EventArgs.Empty);
        }

这二种有什么区别呢?


www说
浏览 906回答 2
2回答

明月笑刀无情

MyDelegate 委托定义更灵活一些,你可以给这个委托定义任何类型,任意个的参数。
随时随地看视频慕课网APP
我要回答