2014-01-05 48 views
1

當自定義委託可以直接調用添加到調用列表中的方法列表時,我正在嘗試理解事件的需要。代表可以完成這項工作時事件的用途

我很抱歉,如果問題太愚蠢,但這是我想了解很長一段時間。

+1

另外Jon Skeet有一篇很酷的文章[Delegates and Events](http://csharpindepth.com/Articles/Chapter2/Events.aspx) –

回答

4

它們本質上是一樣的,但是簡單的區別是委託可以從任何範圍(可見性允許)被調用,但是一個事件只能由聲明它的類的成員調用。

2

如果您使用委託而不確定它是事件。這意味着你的班級的用戶可以簡單地設置他們的委託。下一個這樣做基本上會清除前一個。

當您使用的事件,用戶不僅可以「加入」使用+= EventHandler不能使用= EventHandler

另一件事有關的事件,是他們防止用戶調用的代表。他們唯一能做的就是註冊自己。