event EventHandler vs EventHandler

Tre*_*rey 6 c# event-handling

在C#中使用是否存在根本区别

event EventHandler<myeventargs>并且 EventHandler<myeventargs> 除了使用event关键字之外我们可以看到它们产生相同的效果在intellisense中给你一个不同的图标.

nev*_*ets 6

他们似乎是相似的,但真的不一样.

使用event关键字,您可以使它们像属性一样,这意味着您可以在公共场所注册它们,同时保持私有后端.

但是,没有event关键字,它只是一个公共委托字段,任何人都可以删除或修改其他人的事件,这是一个" 封装灾难 ",正如@Jonskeet所说.

查看Jon Skeet 撰写的这篇文章,它非常有用:)

编辑:

我上面总结的不是我原来的想法,所有归功于@Jonskeet的帖子.

  • 你为什么不提供另一篇提及[封装灾难]的帖子的链接(http://stackoverflow.com/questions/3028724/why-do-we-need-the-event-keyword-while-defining-事件)? (2认同)