靜態方法和靜態構造方法

2021-04-01 06:29:42 字數 1019 閱讀 3073

如你所知,合理運用靜態欄位和靜態方法能夠提公升應用程式的效能,下面我們再複習一下類中的靜態成員(字段、方法),本文將涉及到靜態、構造方法等概念ok,我們先動手然後再剖析**

新建乙個類test.cs

public class test

用csc編譯一下

csc /t:library test.cs

ok,讓我們看一下編譯後的效果,使用ilda**.exe將test.dll開啟(c:/program files/microsoft visual studio .*** 2003/sdk/v1.1/bin)

可以注意到有temp私有靜態變數和.cctor .ctor構造方法,.cctor就是class test的靜態構造方法,

雙擊即可看到方法內部的il**,完整的反編譯效果,即上面**的等效**如下

public class test

public test()

private static string temp;

}從上面**,可以注意到類的兩個構造方法,重點就是static test()靜態構造方法,

靜態建構函式是不可繼承的,而且不能被直接呼叫。

類的靜態建構函式在給定應用程式域中至多執行一次。

應用程式域中第一次發生以下事件時將觸發靜態建構函式的執行:

1。建立類的例項。

2。引用類的任何靜態成員。

那麼在程式中如何可以利用靜態欄位和靜態構造方法,通常適用於於一些不會經常變化而又頻繁使用的資料,比如連線字串,配置資訊等,當滿足上面所說的兩點時,進行一次讀取,以後就可以方便的使用了,同時也節約了託管資源,因為對於靜態成員,乙個靜態欄位只標識乙個儲存位置。對乙個類無論建立了多少個例項,它的靜態字段永遠都只有乙個副本。看如下**

using system;

public class test

public class a

}console.writeline(test.temp);

console.writeline(datetime.now.ticks.tostring());}}

靜態類 靜態欄位和靜態方法

1.靜態類 永遠也不需要例項化的類,這種類唯一的作用就是將一組相關的成員組合到一起。static 關鍵字只能用於類,不能用於結構,因為clr 總是允許值型別例項化,沒辦法阻止 by clr via c 靜態類有如下特點 1 不能實現任何介面 因為只有類的例項才可以呼叫類的介面方法 2 內部只能定義靜...

類方法和靜態方法

通過靜態方法和類方法能夠把相關的函式封裝到乙個類裡面,有效的將 組織起來,提高 的可維護性 class date object def init self,year,month,day self.year year self.month month self.day day 普通方法 def ech...

靜態方法和靜態成員變數

所謂靜態方法和靜態成員變數,是指那些用static關鍵字修飾的方法或者變數,比如我們例子中的private static string company就是乙個靜態成員變數,而public static string getcompany 和public static void setcompany ...