当前位置:  开发笔记 > 编程语言 > 正文

C#:如何从派生类的静态方法调用基类的静态方法?

如何解决《C#:如何从派生类的静态方法调用基类的静态方法?》经验,为你挑选了1个好方法。

在C#中,我有基类Product和派生类Widget.

产品包含静态方法MyMethod().

我想从静态方法Widget.MyMethod()调用静态方法Product.MyMethod().

我不能使用base关键字,因为它只适用于实例方法.

我可以显式地调用Product.MyMethod(),但如果我稍后将Widget更改为从另一个类派生,我必须修改该方法.

C#中有一些类似于base的语法允许我从派生类的静态方法中调用基类的静态方法吗?



1> Mehrdad Afsh..:

static方法基本上是从面向对象的概念中回退的方法.因此,它们在继承层次结构方面不是很灵活,并且不可能直接执行这样的操作.

我能想到的最接近的是using指令.

using mybaseclass = Namespace.BaseClass;

class MyClass : mybaseclass {

  static void MyMethod() {  mybaseclass.BaseStaticMethod();  }

}


>静态方法基本上是一种后备方法......为什么这是真的?在我的类的代码中,依赖实例数据的方法是实例方法.不依赖于实例数据但仅依赖于参数(如果有)的方法是静态方法.我发现这种区别很有用.
我不同意静态方法不是面向对象的.它们可能经常以这种方式使用,但俗话说"你可以用任何语言编写Fortran".在最坏的情况下,概念是正交的.请参阅我的答案,了解一个经典案例,其中静态方法直接用于支持面向对象的范例,即Factory模式.
推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有