可能重复:
如何强制继承类在C#中实现静态方法?
我理解抽象和静态是相反的,但我想强制派生类来实现静态方法.我怎样才能做到这一点?
在SimonC之后编辑:在尝试描述我想要做的事情时,我意识到超类的静态方法将无法调用重写的子类版本.
但是olivier的替代解决方案看起来不错.
Oli*_*bes 14
将静态行为与继承或接口实现相结合的可能方法是使用单例模式.对单例对象的访问是静态的,但是对象是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).
}
Run Code Online (Sandbox Code Playgroud)
访问单身人士的方法
ISomeInterface obj = SomeClass.Instance; // Static access to interface.
var y = obj.SomeMethod(x);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13657 次 |
| 最近记录: |