Csharp/C#教程:如何强制抽象类子实现静态方法?分享


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

可能重复:
如何强制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

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐