好處

2010-10-27 42 views
2

可能重複:
What is the use of a static class好處

什麼是聲明靜態類的好處是什麼?

​​

除了「它不能被實例化」嗎?
爲什麼你還想要一個靜態類,爲什麼類應該是靜態的?
是否「任何類應該被聲明爲靜態的,除非它被實例化」是一個很好的經驗法則?

回答

5

如果一個類則static修飾符:

  • 它使你的意圖明顯:這不只是碰巧具有所有靜態成員的一類 - 這是一類將只有靜態成員
  • 您阻止實例沒有需要一個私人的構造函數只是爲了抑制默認公衆一個
  • 你不允許聲明該類型的變量
  • 您不允許使用該類型的類型參數(IIRC,反正)
  • 你可以聲明在類型擴展方法,如果它是一個頂級型

第一點是最重要的儘管如此,IMO。您正在向編譯器和其他開發人員傳達意圖。

2

您需要一個靜態類來創建擴展方法。

4

靜態類可用作實用函數和常量的容器。如果類不代表一個對象並且僅用於此目的,那麼將其聲明爲靜態是有意義的。

0

實用程序類,它只聲明靜態方法(如System.IO.File)不被實例化,所以它通常是靜態的。

你說得對,我覺得它很好用。辛格爾頓是不同的,因爲它意味着私下立竿見影。

2

靜態類和類成員 用於創建 可以不創建該類的一個實例 訪問的數據和功能。靜態類 成員可用於分隔數據 以及與任何對象標識無關的行爲:數據和 函數不會更改,而不管 對象發生了什麼變化。當沒有 數據或 依賴於對象標識的類中的行爲時,可以使用靜態 類。

直接從MSDN取得。它比我能解釋得更好。關鍵的事實是,這個對象在整個生命中一直存在。

擴展方法也必須用靜態類編寫。我傾向於使用這些字符串擴展或收集擴展。