a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

C#中靜態的深入理解

2020-01-24 03:08:24
字體:
來源:轉載
供稿:網友

一、靜態成員

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

2、靜態成員只被創建一次,所以靜態成員只有一份,實例成員有多少個對象,就有多少份。

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

注:Person p;//這樣實際上就已經被加載了。

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

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

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

7、可以創建這個類的對象,制定對象的成員在靜態方法中操作。

8、在實例方法中,可以調用靜態成員,因為這個時候靜態成員肯定存在。

二、靜態成員和實例成員的區別

1、生命周期不一樣。

2、在內存中存儲的位置不一樣。

三、靜態類

1、被static關鍵字修飾的類。

2、靜態類里面只能聲明靜態成員。

3、靜態類的本質,是一個抽象的密封類,所以不能被繼承,也不能被實例化。

4、如果一個類下面的所有成員,都需要被共享,那么可以把這個類定義為靜態類。

四、靜態構造函數

1、這個類的成員,第一次被訪問之前,就會執行靜態構造函數。

2、靜態構造函數只被執行一次。

Eg:

復制代碼 代碼如下:

class Program
    {
        public static int i =0;
        public Program()
        {
            i = 1;
            Console.Write("實例構造方法被調用");
        }
        static Program()
        {
            i = 2;
            Console.Write("靜態構造函數被執行");
        }
        static void Main(string[] args)
        {
            Console.Write(Program.i);//結果為2,首先,類被加載,所有的靜態成員被創建在靜態存儲區,i=0,接著調用了類的成員,這時候靜態構造函數就會被調用,i=2
            Program p = new Program();
            Console.Write(Program.i);//結果為1,實力化后,調用了實例構造函數,i=1,因為靜態構造函數只執行一次,所以不會再執行。
        }
    }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 8×8x拔擦拔擦在线视频网站 | 狠狠操狠狠操 | 性色av一区二区三区 | 亚洲精品在线看 | 欧美久久久久久 | 国产一区二区不卡在线 | 一级一级毛片 | www.成人| 午夜视频在线播放 | 亚洲tv久久爽久久爽 | 91麻豆精品国产91久久久资源速度 | 久久狠狠| h小视频 | 免费观看羞羞视频网站 | 成人激情视频在线播放 | 天天av网| 亚洲视频在线观看 | 日韩成年视频 | 色播开心网 | 超碰成人av | 97国产在线视频 | 国产福利在线视频 | 国产一区日韩在线 | 北条麻妃一区二区三区在线观看 | 久久天堂| 国产精品久久久久久久久久10秀 | 999在线观看精品免费不卡网站 | 国产精品无码久久久久 | 日韩不卡一区二区 | 在线视频日本 | 久久99精品国产麻豆不卡 | 久久精品久久精品国产大片 | 蜜桃精品久久久久久久免费影院 | 看毛片的网站 | 黄色一级毛片免费 | 91在线视频一区 | 国产一区二区免费 | 成人精品视频在线观看 | 日本在线观看一区二区 | 一本一生久久a久久精品综合蜜 | 男女羞羞羞视频午夜视频 |