C# static
阿新 • • 發佈:2018-10-15
ron href 被調用 參數 靜態變量 意義 對象 blank logs
以下為自己記錄隨便,詳細請參考 https://www.cnblogs.com/dawenhao/p/4902910.html
靜態變量、靜態方法、靜態類、靜態構造函數
靜態變量和靜態方法屬於類,使用類直接調用(static在內存中分配了地址。且只有一個。所以可以直接訪問)。非靜態需要屬於對象。使用new 調用
靜態類中只能有靜態變量。非靜態類中可以存在靜態變量
靜態構造函數只會被執行一次,且不能有修飾符、必須無參數、一個類中只存在一個
因為靜態構造函數只會被執行一次,所以有變量作參數是毫無意義的,且只會在類中使用,修飾符無意義
靜態構造函數可以初始化靜態變量
靜態構造函數可以和非靜態構造函數共存
靜態對象在內存中只有一塊存儲空間,只在第一次運行是初始化,應用程序結束才會釋放。而非靜態沒錯創建對象時候創建,可以在內存中有多個由GC回收
效率很高,但是因為不會被GC回收,會一直存在,所以使用太多的時候會占用較多的內存資源。一般需要保存全局數據時使用。
靜態方法中不能使用類中的其他非靜態屬性,因為靜態訪問屬於類,在內存中已經存在的。而非靜態屬性屬於對象。調用靜態方式時已經生成,而靜態還未生成,所以不能被調用
反之非靜態可以使用靜態元素
靜態方法中不能使用this:同上,this表示的是對象,static和對象本身就是互斥的
C# static