国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > 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,因為靜態構造函數只執行一次,所以不會再執行。
        }
    }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰和县| 沐川县| 武强县| 和顺县| 镇沅| 濮阳县| 怀集县| 城步| 绵竹市| 普定县| 光山县| 娄烦县| 库伦旗| 封丘县| 延吉市| 盐源县| 宁陵县| 铜梁县| 德庆县| 普陀区| 章丘市| 富民县| 汕尾市| 沽源县| 清远市| 江孜县| 化德县| 南部县| 南通市| 浦东新区| 绍兴市| 台安县| 剑阁县| 武邑县| 玛纳斯县| 白朗县| 寿宁县| 广宗县| 景谷| 天全县| 屏南县|