在網上看了大家的一些說法總結如下:
1.訪問的速度快,但是會一直佔用內存
從內存佔用上來說,靜態的雖不需要實例化,但一直佔用內存,所以訪問速度較快,所以靜態類不能太大太佔資源。
而非靜態類只有被實例化後才佔內存,需要“調入”內存後才能執行。相對較慢。
2.當需要某些類提供服務的時候,寫成靜態方法
3.當反覆的使用一個類的時候,聲明爲靜態方法,靜態方法生命週期很長,所以不擔心過期問題
4.靜態類在定義的時候是直接從System.Object類派生的,因此調用類的接口將沒有任何意義.
又由於將類定義成static後會在IL中同時標記爲abstract和sealed的,,因此不能實例化.
在託管堆中不會分配連續的物理內存地址,因此也不會對其進行垃圾回收.
但它又不同於值類型(struct類型),因爲他還是從Object類派生的,,因此可以給他定義相應的靜態成員(字段,方法,屬性和
事件).
可以這麼說靜態類是C#中一個比較特殊的類型.在使用的時候儘量將程序使用頻繁的方法寫進去.從而提高程序的性能.
因爲內存的讀取速度將是外存無法比擬的.