2011-02-10 134 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

靜態方法的一個好處是隻有一個代碼副本保留在內存中。如果你有很多方法的對象的大集合,這可能特別有用。換句話說,它可以減少你的內存佔用。在多線程體系結構中對共享數據進行操作時,您可能會發現更容易或更直觀的方式來控制受保護的代碼塊。但是,您可能會發現將對象的鑄造(基類)實例轉換爲其基類靜態方法之一時會在語法上令人不快,並且一些開發人員可能會對此編碼風格感到困惑,因此評論此類代碼總是一個好主意。

相關問題