如何强制抽象类子实现静态方法?

可能重复:
如何强制inheritance类在C#中实现静态方法?

我理解抽象和静态是相反的,但我想强制派生类来实现静态方法。 我怎样才能做到这一点?

在SimonC之后编辑:在尝试描述我想要做的事情时,我意识到超类的静态方法将无法调用被覆盖的子类版本。

但olivier的替代解决方案看起来不错。

将静态行为与inheritance或接口实现相结合的可能方法是使用单例模式。 对单例对象的访问是静态的,但是对象是使用new创建的,就像“普通”对象一样

 public interface ISomeInterface { ... } public class SomeClass : ISomeInterface { public static readonly SomeClass Instance = new SomeClass(); private SomeClass() { } // Implement ISomeInterface // or override an abstract member from a base class (not shown here). } 

访问单身人士的方法

 ISomeInterface obj = SomeClass.Instance; // Static access to interface. var y = obj.SomeMethod(x); 

你不能。 静态方法不受多态行为的影响。 您甚至无法自动覆盖静态方法,更不用说强制类覆盖它们了。

对不起,但这是不可能的。 抽象和/或基类都是关于对象inheritance的。

static方法特定于一个且只有一个类,并且不可inheritance。