【发布时间】:2010-10-23 20:18:19
【问题描述】:
我最近遇到了一个问题,我似乎需要一个“静态抽象”方法。我知道为什么这是不可能的,但是我该如何解决这个限制呢?
例如,我有一个包含描述字符串的抽象类。由于此字符串对所有实例都是通用的,因此将其标记为静态,但我想要求从该类派生的所有类都提供自己的 Description 属性,因此我将其标记为抽象:
abstract class AbstractBase
{
...
public static abstract string Description{get;}
...
}
它当然不会编译。我想过使用接口,但接口可能不包含静态方法签名。
我应该让它简单地成为非静态的,并且总是获取一个实例来获取该类的特定信息吗?
有什么想法吗?
【问题讨论】:
-
在this answer 中,我描述了一种可以模拟所需行为的模式。