【问题标题】:What is the advantage of using events instead of abstract methods? C# [closed]使用事件而不是抽象方法有什么好处? C# [关闭]
【发布时间】:2019-03-16 16:59:10
【问题描述】:

我想了解的是什么时候使用委托事件的最佳实践以及何时使用抽象类、方法和继承

  • 我知道委托和事件是松耦合的,因此它使代码更加灵活。
  • 我还发现“event 关键字确保多个线程之间存在同步,这不是由Delegate 类执行的。如果多个线程去添加处理程序到一个事件同时,event 关键字确保两者都被添加" source link

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

【问题讨论】:

  • 这两个概念看起来如此不同并且具有如此不同的用例,以至于我对在特定用例中使用其中一个或另一个存在很多疑问的想法感到有些困惑。您能否详细说明一下您想知道在哪些情况下使用 on 或其他?
  • 有一个答案解释了事件的优点,这可能对您有所帮助。 stackoverflow.com/questions/18385967/…

标签: c# events delegates abstract-methods


【解决方案1】:

简单来说,委托和事件是松散耦合的函数,它是优于紧密耦合的抽象方法的优势之一。

让我带你看看使用抽象的问题。考虑一个客户端类是从一个抽象类派生的。如果你想改变抽象类(假设你要在抽象类中添加一个新方法),客户端类应该相应地改变,因为它是紧密耦合的。为了克服这个缺点,我们可能会采用松散耦合的功能,例如委托和事件。

【讨论】:

    猜你喜欢
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多