1. 程式人生 > >C# static

C# static

ron href 被調用 參數 靜態變量 意義 對象 blank logs

以下為自己記錄隨便,詳細請參考 https://www.cnblogs.com/dawenhao/p/4902910.html

靜態變量、靜態方法、靜態類、靜態構造函數

靜態變量和靜態方法屬於類,使用類直接調用(static在內存中分配了地址。且只有一個。所以可以直接訪問)。非靜態需要屬於對象。使用new 調用

靜態類中只能有靜態變量。非靜態類中可以存在靜態變量

靜態構造函數只會被執行一次,且不能有修飾符、必須無參數、一個類中只存在一個

  因為靜態構造函數只會被執行一次,所以有變量作參數是毫無意義的,且只會在類中使用,修飾符無意義

  靜態構造函數可以初始化靜態變量

  靜態構造函數可以和非靜態構造函數共存

靜態對象在內存中只有一塊存儲空間,只在第一次運行是初始化,應用程序結束才會釋放。而非靜態沒錯創建對象時候創建,可以在內存中有多個由GC回收

效率很高,但是因為不會被GC回收,會一直存在,所以使用太多的時候會占用較多的內存資源。一般需要保存全局數據時使用。

靜態方法中不能使用類中的其他非靜態屬性,因為靜態訪問屬於類,在內存中已經存在的。而非靜態屬性屬於對象。調用靜態方式時已經生成,而靜態還未生成,所以不能被調用

  反之非靜態可以使用靜態元素

靜態方法中不能使用this:同上,this表示的是對象,static和對象本身就是互斥的

C# static