[C#] static 修飾字

入門程式設計的時候,常常被 static 搞混,不知道什麼時候該用,什麼時候不該用。

只覺得只要能動就好了,但是做的事情越多,專案越大。對於這種不知道的事情容忍度就很低,於是決定要來搞清楚!

文章開始前 先推薦大家一個不錯的C# 教學頻道小山的教學平台,裡面對於許多知識都用影音的方式讓人更快速理解,這篇文章也有擷取影片中的知識。

 

首先要先說明 static 所代表的就是 "靜態"

那麼,你常見到有下面四種名詞:

靜態類別 非靜態類別
靜態成員 非靜態成員

靜態的成員先說明 靜態成員與非靜態成員的區別

    • 不需要實體(Instance) 就能進行訪問

    • 靜態方法 屬於 類別所有

    • 靜態成員是唯一的 只要是宣告成 static 且同名的成員 都是共用一區記憶體位置
      (在程式執行之初就建立 並佔用記憶體位置 而且一直存在,當程式用上一堆靜態成員的時候 就容易造成不必要的記憶體浪費)

  • 非靜態的成員

    • 必須 new 一個 實體(Instance) 才能進行訪問

    • 非靜態方法 屬於 實體所有

 

最後 靜態類別不能夠static class物件 !! 因為靜態類別裡面只會有一堆靜態成員與方法,被new出來也是很奇怪的事情

希望這些整理能幫助到大家,有任何錯誤都歡迎指教!!