入門程式設計的時候,常常被 static 搞混,不知道什麼時候該用,什麼時候不該用。
只覺得只要能動就好了,但是做的事情越多,專案越大。對於這種不知道的事情容忍度就很低,於是決定要來搞清楚!
文章開始前 先推薦大家一個不錯的C# 教學頻道小山的教學平台,裡面對於許多知識都用影音的方式讓人更快速理解,這篇文章也有擷取影片中的知識。
首先要先說明 static 所代表的就是 "靜態"
那麼,你常見到有下面四種名詞:
靜態類別 | 非靜態類別 |
靜態成員 | 非靜態成員 |
靜態的成員先說明 靜態成員與非靜態成員的區別
-
-
不需要實體(Instance) 就能進行訪問
-
靜態方法 屬於 類別所有
-
靜態成員是唯一的 只要是宣告成 static 且同名的成員 都是共用一區記憶體位置
(在程式執行之初就建立 並佔用記憶體位置 而且一直存在,當程式用上一堆靜態成員的時候 就容易造成不必要的記憶體浪費)
-
-
非靜態的成員
-
必須 new 一個 實體(Instance) 才能進行訪問
-
非靜態方法 屬於 實體所有
-
最後 靜態類別 是 不能夠static class物件 !! 因為靜態類別裡面只會有一堆靜態成員與方法,被new出來也是很奇怪的事情
希望這些整理能幫助到大家,有任何錯誤都歡迎指教!!