c 靜態方法和非靜態方法詳細介紹

2022-09-26 08:54:09 字數 1197 閱讀 4452

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

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

靜態方法是一種 特殊的成員方法,它不屬於類的某乙個具體的例項,而是屬於類本身。

所以對靜態方法不需要 首先建立乙個類的例項,而是採用類名.靜態方法的格式 。

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

sta程式設計客棧tic內部只能出現static變數和其他static方法!而且static方法中還不能使用this....等關鍵字..因為它是 屬於整個類!

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

3.靜態方法和靜態變數建立後始終使用同一塊記憶體,而使用例項的方式會創程式設計客棧建多個記憶體.

4.c#中的方法有兩種:例項方法,靜態方法. 類的方法**只有乙份,它們的生命週期和類是一致的.例項方法是通過物件名呼叫的,靜態方法與類關聯而不是 與物件名關聯.

5.那麼在程式中什麼地方可以利用靜態欄位和靜態構造方法,通常適用於於一些不會經常變化而又頻繁使用的數 據,比如連線字串,配置資訊等,當滿足上面所 說的兩點時,進行一次讀取,以後就可以方便的使用了,同 時也節約了託管資源,因為對於靜態成員,乙個靜態欄位只標識乙個儲存位置。

對乙個類無論建立了多少 個實 例,它的靜態字段永遠都只有乙個副本(副本我理解為只有一塊記憶體 靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員..因為靜態成員 存在於記憶體,所以非靜態成員可以直接訪問類中靜態的成員.

公用的處理函式,使用靜態方法應該沒有問題..牽涉 到資料共享,靜態變數的函式要多考慮...靜態變數要小心使用..

靜態方法 原理就是共享**段 共享**段不會產生任何問題 因為**段都是給cpu作www.cppcns.com為"讀取"用的,除非你進行惡意"修改"執行時的**段 所以靜態方法是可以放心使用的

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

下面是乙個使用靜態方法www.cppcns.com的例子

複製** **如下:

class class1

} class myclass }

本文標題: c#靜態方法和非靜態方法詳細介紹

本文位址: /ruanjian/csharp/104989.html

靜態方法和非靜態方法

首先,兩者本質上的區別是 靜態方法是在類中使用staitc修飾的方法,在類定義的時候已經被裝載和分配。而非靜態方法是不加static關鍵字的方法,在類定義時沒有占用記憶體,只有在類被例項化成物件時,物件呼叫該方法才被分配記憶體。其次,靜態方法中只能呼叫靜態成員或者方法,不能呼叫非靜態方法或者非靜態成...

靜態方法和非靜態方法

靜態方法和非靜態方法 其次,靜態方法中只能呼叫靜態成員或者方法,不能呼叫非靜態方法或者非靜態成員,而非靜態方法既可以呼叫靜態成員或者方法又可以呼叫其他的非靜態成員或者方法。例子1 靜態方法的main方法訪問類中的非靜態成員方法。class test public static void main s...

靜態和非靜態方法 呼叫靜態和非靜態方法 原創

在學習php物件導向的時候,遇到了一些問題 class test1 在test1類中,定義了乙個test方法。一般呢,想要呼叫test方法的話,是通過例項化乙個物件來呼叫test方法的。比如 aaa.php php 正常的方式訪問普通方法test class test1 new new test1 ...