gpt4 book ai didi

c# - 如何避免空基抽象类?

转载 作者:行者123 更新时间:2023-12-02 22:29:49 26 4
gpt4 key购买 nike

<分区>

假设我有许多具有不同签名的方法。根据一些外部代码,所有这些方法可能 都会被调用。您可能会将它们视为一些事件处理程序。

现在我应该有两个实现:

  • 每个实现实际上只处理所有可能事件的部分
  • 对于它不想/不能处理的所有事件,每个实现都不做任何事情。

我当然可以为所有可能的处理程序声明一个接口(interface),但是我将不得不在每个实现中创建空方法(处理程序)。即使对于那些我不想/不能处理的事件。

我正在考虑做如下事情:

abstract class Base
{
public virtual void First(int i, double d) { /* no implementation */ }
public virtual void Second(double d) { /* no implementation */ }
public virtual void Third(string s, int i) { /* no implementation */ }
}

class Child : Base
{
public override void First(int i, double d) { /* implementation */ }
public override void Second(double d) { /* implementation */ }
}

class AnotherChild : Base
{
public override void Second(double d) { /* implementation */ }
public override void Third(string s, int i) { /* implementation */ }
}

这种方法迫使我为基本抽象类中的所有可能的处理程序创建空的实现。

您能推荐一些更好的吗?一种不需要产生大量空方法的方法?

我使用的是 C# 2.0,无法为此任务使用更新版本的语言。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com