使用事件而不是抽象方法的优点是什么? C#

时间:2019-03-16 16:59:10

标签: c# events delegates abstract-methods

我想了解的是什么是最佳做法,何时将事件与委托一起使用以及何时使用抽象类,方法和继承

  
      
  • 我知道委托和事件之间是松散耦合的,因此可以使代码更灵活。
  •   
  • 我还发现,“ event关键字可确保多个线程之间存在同步,而Delegate类不会执行此同步。如果有多个线程去添加处理程序,同时将event关键字添加到一个事件中source link
  •   

现在对我来说更清楚了。如果还有其他信息,请分享。

1 个答案:

答案 0 :(得分:1)

简单来说,代表和事件是松散耦合的函数,这是与紧密耦合的抽象方法相比的优势之一。

让我来看一下使用抽象的问题。考虑一个客户端类是从Abstract类派生的。如果要更改Abstract类(比如说,您将在Abstract类中添加一个新方法),则客户端类应进行相应更改,因为其紧密耦合。为了克服这个缺点,我们可以采用松散耦合的功能,例如“代表”和“事件”。