欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中靜態(tài)的深入理解

 更新時(shí)間:2013年09月30日 14:50:33   作者:  
這篇文章詳細(xì)的介紹了C#中的靜態(tài),有需要的朋友可以參考一下

一、靜態(tài)成員

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

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

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

注:Person p;//這樣實(shí)際上就已經(jīng)被加載了。

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

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

6、this/base 關(guān)鍵字在靜態(tài)方法中不能使用,因?yàn)橛锌赡軐ο筮€不存在。

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

8、在實(shí)例方法中,可以調(diào)用靜態(tài)成員,因?yàn)檫@個(gè)時(shí)候靜態(tài)成員肯定存在。

二、靜態(tài)成員和實(shí)例成員的區(qū)別

1、生命周期不一樣。

2、在內(nèi)存中存儲的位置不一樣。

三、靜態(tài)類

1、被static關(guān)鍵字修飾的類。

2、靜態(tài)類里面只能聲明靜態(tài)成員。

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

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

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

1、這個(gè)類的成員,第一次被訪問之前,就會執(zhí)行靜態(tài)構(gòu)造函數(shù)。

2、靜態(tài)構(gòu)造函數(shù)只被執(zhí)行一次。

Eg:

復(fù)制代碼 代碼如下:

class Program
    {
        public static int i =0;
        public Program()
        {
            i = 1;
            Console.Write("實(shí)例構(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)用了類的成員,這時(shí)候靜態(tài)構(gòu)造函數(shù)就會被調(diào)用,i=2
            Program p = new Program();
            Console.Write(Program.i);//結(jié)果為1,實(shí)力化后,調(diào)用了實(shí)例構(gòu)造函數(shù),i=1,因?yàn)殪o態(tài)構(gòu)造函數(shù)只執(zhí)行一次,所以不會再執(zhí)行。
        }
    }

相關(guān)文章

  • WPF利用CommunityToolkit.Mvvm實(shí)現(xiàn)級聯(lián)選擇器

    WPF利用CommunityToolkit.Mvvm實(shí)現(xiàn)級聯(lián)選擇器

    這篇文章主要介紹了WPF如何利用CommunityToolkit.Mvvm實(shí)現(xiàn)級聯(lián)選擇器,文中的示例代碼講解詳細(xì),對我們的學(xué)習(xí)或工作有一定幫助,需要的小伙伴可以參考一下
    2023-12-12
  • C#調(diào)用Java代碼的方法介紹

    C#調(diào)用Java代碼的方法介紹

    這篇文章介紹了C#調(diào)用Java代碼的方法,有需要的朋友可以參考一下
    2013-10-10
  • DevExpress的DateEdit設(shè)置顯示日期和時(shí)間的方法

    DevExpress的DateEdit設(shè)置顯示日期和時(shí)間的方法

    本文主要介紹了DevExpress的DateEdit設(shè)置顯示日期和時(shí)間的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 深入理解C# abstract和virtual關(guān)鍵字

    深入理解C# abstract和virtual關(guān)鍵字

    深入理解C# abstract和virtual關(guān)鍵字,學(xué)習(xí)c#的朋友可以參考下。
    2011-06-06
  • c# WPF設(shè)置軟件界面背景為MediaElement并播放視頻

    c# WPF設(shè)置軟件界面背景為MediaElement并播放視頻

    這篇文章主要介紹了c# WPF如何設(shè)置軟件界面背景為MediaElement并播放視頻,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#實(shí)現(xiàn)文字視頻生成器的示例代碼

    C#實(shí)現(xiàn)文字視頻生成器的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)簡易的文字視頻生成器,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2022-10-10
  • C#四舍五入用法實(shí)例

    C#四舍五入用法實(shí)例

    這篇文章主要為大家詳細(xì)介紹了C#四舍五入用法實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C# datagridview、datagrid、GridControl增加行號代碼解析

    C# datagridview、datagrid、GridControl增加行號代碼解析

    今天這篇文章小編就來給大家分享關(guān)于C# datagridview、datagrid、GridControl增加行號的介紹,主要包括WinForm中datagridview增加行號、WPF中datagrid增加行號、WPF dev控件GridControl增加行號三個(gè)內(nèi)容,感興趣等我小伙伴可以參考一下
    2021-10-10
  • Unity實(shí)現(xiàn)滑動更換界面效果

    Unity實(shí)現(xiàn)滑動更換界面效果

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)滑動更換界面效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • c#關(guān)于JWT跨域身份驗(yàn)證的實(shí)現(xiàn)代碼

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

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

最新評論