C 靜態方法與非靜態方法

2021-08-27 10:14:47 字數 1137 閱讀 9661

c#靜態方法與非靜態方法

c#的類中可以包含兩種方法:靜態方法和非靜態方法。

使用了static 修飾符的方法為靜態方法,反之則是非靜態方法。

靜態方法是一種特殊的成員方法,它不屬於類的某乙個具體的例項,而是屬於類本身。所以對靜態方法不需要首先建立乙個類的例項,而是採用類名.靜態方法的格式 。

1)static方法是類中的乙個成員方法,屬於整個類,即不用建立任何物件也可以直接呼叫。

static內部只能出現static變數和其他static方法,而且static方法中還不能使用this等關鍵字,因為它是屬於整個類。

2)靜態方法效率上要比例項化高,靜態方法的缺點是不自動進行銷毀,而例項化的則可以做銷毀。

3)靜態方法和靜態變數建立後始終使用同一塊記憶體,而使用例項的方式會建立多個記憶體。

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

靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員。因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜態的成員。公用的處理函式,使用靜態方法應該沒有問題,牽涉到資料共享,靜態變數的函式要多考慮,靜態變數要小心使用。

靜態方法:

原理就是共享**段;

共享**段不會產生任何問題;

因為**段都是給cpu作為"讀取"用的,除非你進行惡意"修改"執行時的**段;

所以靜態方法是可以放心使用的;

靜態變數:

原理就是共享資料段;

只要沒有進行"寫入"操作就不會產生問題,但是資料通常都是用於讀和寫,所以靜態變數要注意使用;

下面是乙個使用靜態方法的簡單例子:

using system;

using system.collections.generic;

using system.linq;

using system.text;

}class myclass

}}

輸出結果:18

靜態方法與非靜態方法

靜態類 在類 class 上加入static修飾,表示該類無法被例項化,並且該類中,無法例項化變數或函式。那麼如果要在此靜態類中新增函式 變數 屬性,則必須都是靜態的。靜態類的主要特性 1 僅包含靜態成員。2 無法例項化。3 靜態類的本質,是乙個抽象的密封類,所以不能被繼承,也不能被例項化。4 不能...

靜態方法與非靜態方法

c 的類中可以包含兩種方法 c 靜態方法與非靜態方法。讓我們來看看最直觀的差別 使用了static 修飾符的方法為靜態方法,反之則是非靜態方法。下面我們分四個方面來看看c 靜態方法與非靜態方法的差異 c 靜態方法與非靜態方法比較一 c 靜態成員 靜態成員屬於類所有,非靜態成員屬於類的例項所有。每建立...

C 靜態類 靜態方法與非靜態方法比較

在類 class 上加入static修飾,表示該類無法被例項化,並將該類中,無法例項化變數或函式 靜態類的主要特性 所以,可以在普通類中新增靜態方法,但是靜態類中的方法 變數都必須是靜態的。一 靜態方法 使用static修改的方法就是靜態方法,否則就是非靜態方法。二 1 靜態成員屬於類的所以,非靜態...