什么时候应该在基类中声明静态方法?

时间:2011-02-10 05:45:39

标签: c# .net oop class-design static-methods

什么时候应该在基类和受保护的方法中使用静态方法? (可以使用base.MethodName从派生类调用)

3 个答案:

答案 0 :(得分:2)

仅当您的方法不依赖于对象的状态时才应使用静态 当您只希望后代从base调用方法时受到保护。

Base.Method一般用于覆盖方法

答案 1 :(得分:1)

受保护和静态不是独占的。

protected意味着您允许派生类访问基本方法。

static表示方法不需要访问实例的状态。通常称为类方法而不是实例方法。

base关键字仅在从基类重写成员时才有用(基本成员通常标记为虚拟)。这允许您引用基础成员,以防您在派生类中重载它。

答案 2 :(得分:1)

静态方法的一个好处是只有一个代码副本保留在内存中。如果您拥有包含许多方法的大型对象集合,这将特别有用。换句话说,它可以减少你的内存占用。在使用多线程体系结构中的共享数据时,您可能还会发现控制受保护的代码块更容易或更直观。但是,你可能会发现将对象的casted(基类)实例传递给它的一个基类静态方法在语法上是不愉快的,并且一些开发人员可能会对这种编码风格感到困惑,所以对这些代码进行注释总是一个好主意。