如何强制抽象类子实现静态方法?
可能重复:
如何强制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。
上述就是C#学习教程:如何强制抽象类子实现静态方法?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1010569.html