最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#靜態(tài)static的用法實例分析

 更新時間:2014年10月22日 08:51:16   投稿:shichen2014  
這篇文章主要介紹了C#靜態(tài)static的用法,以實例形式較為深入的分析了靜態(tài)類、靜態(tài)變量、靜態(tài)方法以及靜態(tài)構(gòu)造函數(shù)的特性與用法,需要的朋友可以參考下

本文實例講述了C#靜態(tài)static的用法,分享給大家供大家參考。具體用法分析如下:

一、靜態(tài)類

靜態(tài)類與非靜態(tài)類的重要區(qū)別在于靜態(tài)類不能實例化,也就是說,不能使用 new 關鍵字創(chuàng)建靜態(tài)類類型的變量。在聲明一個類時使用static關鍵字,具有兩個方面的意義:首先,它防止程序員寫代碼來實例化該靜態(tài)類;其次,它防止在類的內(nèi)部聲明任何實例字段或方法。

靜態(tài)類的主要特性:

1:僅包含靜態(tài)成員。

2:無法實例化。

3:靜態(tài)類的本質(zhì),是一個抽象的密封類,所以不能被繼承,也不能被實例化。

4:不能包含實例構(gòu)造函數(shù)。

5:如果一個類下面的所有成員,都需要被共享,那么可以把這個類定義為靜態(tài)類。

靜態(tài)類與私有構(gòu)造函數(shù)區(qū)別:

1、私有構(gòu)造器方式仍然可以從類的內(nèi)部對類進行實例化,而靜態(tài)類禁止從任何地方實例化類,其中包括從類自身內(nèi)部。

2、使用私有構(gòu)造器的類中,是允許有實例成員的,編譯器不允許靜態(tài)類有任何實例成員。

3、使用靜態(tài)類的優(yōu)點在于,編譯器能夠執(zhí)行檢查以確保不致偶然地添加實例成員,編譯器將保證不會創(chuàng)建此 類的實例。

4、C#編譯器會自動把它標記為sealed。這個關鍵字將類指定為不可擴展;換言之,不能從它派生出其他類。

二、靜態(tài)變量

1、通過static關鍵字修飾,是屬于類,實例成員屬于對象,在這個類第一次加載的時候,這個類下面的所有靜態(tài)成員會被加載。

2、靜態(tài)成員只被創(chuàng)建一次,所以靜態(tài)成員只有一份,實例成員有多少個對象,就有多少份。

3、類加載的時候,所有的靜態(tài)成員就會被創(chuàng)建在“靜態(tài)存儲區(qū)”里面,一旦創(chuàng)建直到程序退出,才會被回收。

4、變量需要被共享的時候,方法需要被反復調(diào)用的時候,就可以把這些成員定義為靜態(tài)成員。

5、在靜態(tài)方法中,不能直接調(diào)用實例成員,因為靜態(tài)方法被調(diào)用的時候,對象還有可能不存在。

6、this/base 關鍵字在靜態(tài)方法中不能使用,因為有可能對象還不存在。

7、可以創(chuàng)建這個類的對象,制定對象的成員在靜態(tài)方法中操作。

8、在實例方法中,可以調(diào)用靜態(tài)成員,因為這個時候靜態(tài)成員肯定存在。

9、非靜態(tài)類可以包含靜態(tài)的方法、字段、屬性或事件;
10、無論對一個類創(chuàng)建多少個實例,它的靜態(tài)成員都只有一個副本;
11、靜態(tài)方法和屬性不能訪問其包含類型中的非靜態(tài)字段和事件,并且不能訪問任何對象的實例變量;
12、靜態(tài)方法只能被重載,而不能被重寫,因為靜態(tài)方法不屬于類的實例成員;
13、雖然字段不能聲明為 static const,但 const 字段的行為在本質(zhì)上是靜態(tài)的。這樣的字段屬于類,不屬于類的實例。

三、靜態(tài)方法

靜態(tài)方法是不屬于特定對象的方法,

靜態(tài)方法可以訪問靜態(tài)成員變量,

靜態(tài)方法不可以直接訪問實例變量,可以在實例函數(shù)調(diào)用的情況下,實例變 量做為參數(shù)傳給靜態(tài)方法。

靜態(tài)方法也不能直接調(diào)用實例方法,可以間接調(diào)用,首先要創(chuàng)建一個類的實例,然后通過這一特定對象來調(diào)用靜態(tài)方法。

四、靜態(tài)構(gòu)造函數(shù)

1:靜態(tài)類可以有靜態(tài)構(gòu)造函數(shù),靜態(tài)構(gòu)造函數(shù)不可繼承;
2:靜態(tài)構(gòu)造函數(shù)可以用于靜態(tài)類,也可用于非靜態(tài)類;
3:靜態(tài)構(gòu)造函數(shù)無訪問修飾符、無參數(shù),只有一個 static 標志;
4:靜態(tài)構(gòu)造函數(shù)不可被直接調(diào)用,當創(chuàng)建類實例或引用任何靜態(tài)成員之前,靜態(tài)構(gòu)造函數(shù)被自動執(zhí)行,并且只執(zhí)行一次。

例如

復制代碼 代碼如下:
class Program
{
        public static int i =0;
        public Program()
        {
            i = 1;
            Console.Write("實例構(gòu)造方法被調(diào)用");
        }
        static Program()
        {
            i = 2;
            Console.Write("靜態(tài)構(gòu)造函數(shù)被執(zhí)行");
        }
        static void Main(string[] args)
        {
            Console.Write(Program.i);//結(jié)果為2,首先,類被加載,所有的靜態(tài)成員被創(chuàng)建在靜態(tài)存儲區(qū),i=0,接著調(diào)用了類的成員,這時候靜態(tài)構(gòu)造函數(shù)就會被調(diào)用,i=2
            Program p = new Program();
            Console.Write(Program.i);//結(jié)果為1,實力化后,調(diào)用了實例構(gòu)造函數(shù),i=1,因為靜態(tài)構(gòu)造函數(shù)只執(zhí)行一次,所以不會再執(zhí)行。
        }
}

希望本文所述對大家的C#程序設計有所幫助。

相關文章

  • 如何使用正則表達式判斷郵箱(以C#為例)

    如何使用正則表達式判斷郵箱(以C#為例)

    在C#中可以使用Regex正則表達式類來校驗前臺提交過來的郵箱字段信息是否符合要求,Regex類是C#中有關正則表達式處理的相關類,功能強大,下面這篇文章主要給大家介紹了關于如何使用正則表達式判斷郵箱的相關資料,需要的朋友可以參考下
    2022-03-03
  • C#由當前日期計算相應的周一和周日的實例代碼

    C#由當前日期計算相應的周一和周日的實例代碼

    這篇文章介紹了C#由當前日期計算相應的周一和周日的實例代碼,有需要的朋友可以參考一下
    2013-09-09
  • C#調(diào)用Java方法實例詳解

    C#調(diào)用Java方法實例詳解

    這篇文章主要介紹了C#調(diào)用Java方法實例詳解的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • 基于C#實現(xiàn)將圖片轉(zhuǎn)換為PDF文檔

    基于C#實現(xiàn)將圖片轉(zhuǎn)換為PDF文檔

    將圖片(JPG、PNG)轉(zhuǎn)換為PDF文件可以幫助我們更好地保存和分享圖片,所以本文將介紹如何使用C#將JPG/PNG圖片轉(zhuǎn)換為PDF文檔,需要的可以參考下
    2024-12-12
  • C#中調(diào)整圖像大小的步驟詳解

    C#中調(diào)整圖像大小的步驟詳解

    這篇文章主要介紹了C#中調(diào)整圖像大小的步驟詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • C#線程間通信的異步機制

    C#線程間通信的異步機制

    這篇文章介紹了C#線程間通信的異步機制,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • c#循環(huán)左移字符示例

    c#循環(huán)左移字符示例

    這篇文章主要介紹了c#循環(huán)左移字符示例,需要的朋友可以參考下
    2014-04-04
  • C#使用開源驅(qū)動連接操作MySQL數(shù)據(jù)庫

    C#使用開源驅(qū)動連接操作MySQL數(shù)據(jù)庫

    這篇文章主要介紹了C#使用開源驅(qū)動連接操作MySQL數(shù)據(jù)庫,本文講解使用SourceForge上的mysqldrivercs驅(qū)動連接操作MySQL數(shù)據(jù)庫,需要的朋友可以參考下
    2015-02-02
  • c#關于JWT跨域身份驗證的實現(xiàn)代碼

    c#關于JWT跨域身份驗證的實現(xiàn)代碼

    這篇文章主要介紹了c#關于JWT跨域身份驗證的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • c# 實現(xiàn)的支付寶支付

    c# 實現(xiàn)的支付寶支付

    這篇文章主要介紹了c# 實現(xiàn)的支付寶支付的方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01

最新評論

崇左市| 会东县| 岚皋县| 泰和县| 玛曲县| 江西省| 钦州市| 和政县| 安庆市| 甘德县| 珲春市| 瑞昌市| 广元市| 泸水县| 陕西省| 色达县| 元朗区| 三河市| 崇文区| 奉化市| 浠水县| 宁阳县| 华安县| 平定县| 务川| 黄陵县| 盐津县| 阳东县| 姚安县| 桂东县| 上犹县| 唐海县| 金塔县| 泾源县| 兴义市| 金坛市| 手机| 秦安县| 蓝田县| 利辛县| 离岛区|