2011-02-10 80 views
0

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

+0

你的意思是“**声明**静态方法”(如在你的问题标题中)或“**使用**静态方法”(如你的问题的主体)? – 2011-02-11 19:25:23

回答

2

时,当你想只后代调用从基本方法的方法不依赖于
保护对象的静力状态,才应使用。

Base.Method一般覆盖方法

+1

对象的状态 - >特定时刻私有和公共字段/属性的值。 – 2011-02-10 05:53:22

1

保护和静态时使用的是不是排他性的。

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

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

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

1

静态方法的一个好处是只有一个代码副本保留在内存中。如果你有很多方法的对象的大集合,这可能特别有用。换句话说,它可以减少你的内存占用。在多线程体系结构中对共享数据进行操作时,您可能会发现更容易或更直观的方式来控制受保护的代码块。但是,您可能会发现将对象的铸造(基类)实例转换为其基类静态方法之一时会在语法上令人不快,并且一些开发人员可能会对此编码风格感到困惑,因此评论此类代码总是一个好主意。