C#靜態方法與非靜態方法執行個體分析_php技巧

來源:互聯網
上載者:User

本文執行個體分析了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;namespace ConsoleApplication1{ class Program { static void Main(string[] args) {  int i = MyClass.Add(7, 11); //調用靜態方法  Console.WriteLine(i);  Console.ReadKey(); } } class MyClass { public static int Add(int x, int y) {  return x + y; } }}
輸出結果:18

希望本文所述對大家C#程式設計的學習有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.