作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<分区>
假设我有许多具有不同签名的方法。根据一些外部代码,所有这些方法可能 都会被调用。您可能会将它们视为一些事件处理程序。
现在我应该有两个实现:
我当然可以为所有可能的处理程序声明一个接口(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,无法为此任务使用更新版本的语言。
仍在掌握 C++ 类的窍门,我想知道实现此目的的最高效的运行时方法是什么: 我有一个派生类,我想实例化一次(在编译时已知),但我想将指针类型转换为基类指针并将其传递给我的程序的其余部分使用。这样,如果
我是一名优秀的程序员,十分优秀!