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

.NET中的靜態(tài)與非靜態(tài)的區(qū)別分析

 更新時間:2013年03月27日 08:58:26   作者:  
.NET中的靜態(tài)與非靜態(tài)的區(qū)別分析,需要的朋友可以參考一下

靜態(tài)類 vs 普通類

靜態(tài)類與普通類的區(qū)別有以下幾點:

1)靜態(tài)類無法實例化而普通類可以;

2)靜態(tài)類只能從System.Object基類繼承;普通可以繼承其它任何非static和非sealed類,但也只能繼承一個類;

3)靜態(tài)類不能繼承接口;普通類可以繼承多個接口;

4)靜態(tài)類只能包含靜態(tài)成員;普通類可以包含靜態(tài)和非靜態(tài)成員;

5)靜態(tài)類不能作為字段,方法參數(shù)和局部變量使用;普通類可以;

靜態(tài)類的意義:

可以用靜態(tài)類封裝一組不與任何對象相關(guān)聯(lián)的方法,如Math類,Console類。

 

靜態(tài)構(gòu)造函數(shù) vs 實例構(gòu)造函數(shù)

靜態(tài)構(gòu)造函數(shù)與實例構(gòu)造函數(shù)的區(qū)別有以下幾點:

1)靜態(tài)構(gòu)造函數(shù)屬于類,在第一次用到該類時執(zhí)行且只執(zhí)行一次;實例構(gòu)造函數(shù)屬于對象,在每次初始化一個新對象的時候都會執(zhí)行;

2)靜態(tài)構(gòu)造函數(shù)只能定義一次,且不能包含參數(shù);實例構(gòu)造函數(shù)可以定義重載,且可以包含參數(shù);

3)靜態(tài)構(gòu)造函數(shù)只能訪問類型的靜態(tài)字段;實例構(gòu)造函數(shù)可以訪問類型的靜態(tài)和非靜態(tài)字段;

4)靜態(tài)類不能包含訪問修飾符,默認為private.

靜態(tài)構(gòu)造函數(shù)的意義:

設(shè)置類型的初始化,例如初始化類型需要的實例對象,為類型的靜態(tài)字段賦值等。

 

靜態(tài)方法 vs 實例方法

靜態(tài)方法與實例方法的區(qū)別有以下幾點:

1)靜態(tài)方法屬于類,通過類來調(diào)用;實例方法屬于對象,通過對象來調(diào)用;

2)靜態(tài)方法不能訪問類的非靜態(tài)成員;

靜態(tài)方法的意義:

完成一個與特定對象無關(guān)的功能。

 

靜態(tài)字段 vs 非靜態(tài)字段

靜態(tài)字段與非靜態(tài)字段的區(qū)別:

靜態(tài)字段屬于類,通過類來調(diào)用;非靜態(tài)字段屬于對象,通過對象來調(diào)用。

靜態(tài)字段的意義:

可以用靜態(tài)字段來記錄一些屬于類本身的信息。

 

代碼演示


復制代碼 代碼如下:

public class Test
     {
         public int i = 10;
         public static int j = 20;
         public int k;

         public Test()
         {
             Console.WriteLine("i is a non-static field, its value is {0}", i);
             Console.WriteLine("j is a static field, its value is {0}", j);
         }

         public Test(int k)
         {
             this.k = k;
             Console.WriteLine("i is a non-static field, its value is {0}", i);
             Console.WriteLine("j is a static field, its value is {0}", j);
             Console.WriteLine("k is a non-static field, its value is {0}", k);
         }

         static Test()
         {
             Console.WriteLine("I am a static constructor, I couldn't contain any parameters!");
             Console.WriteLine("I couldn't access to the non-static field i, I can only access to the static field j, the value of j is {0}", j);
         }

         public void Print()
         {
             Console.WriteLine("I am a instance method, I can access both the non-static field and the static field!");
             Console.WriteLine("The value of i is {0} and the value of j is {1}", i, j);
         }

         public static void StaticPrint()
         {
             Console.WriteLine("I am a static method, I couldnt access to the non-static field i,  I can only access to the static field j, the value of j is {0}", j);
         }
     }

運行結(jié)果


從運行結(jié)果可以看出,在Main方法中創(chuàng)建了兩個Test對象,靜態(tài)構(gòu)造函數(shù)只執(zhí)行了一次,且先于實例構(gòu)造函數(shù)執(zhí)行,實例構(gòu)造函數(shù)在兩次實例化過程中各執(zhí)行了一次。同時可以看到我們是通過Test.j來調(diào)用的j字段,而i字段和k字段的調(diào)用則通過Test的兩個對象t1和t2調(diào)用。同樣的,靜態(tài)方法StaticPrint也是用Test類來調(diào)用,而實例方法Print通過Test類的對象來調(diào)用。

Fighting like Allen Iverson! Never never give up!

相關(guān)文章

  • C#連接MySQL數(shù)據(jù)庫的方法步驟

    C#連接MySQL數(shù)據(jù)庫的方法步驟

    最近兩天在解決C#連接MySql數(shù)據(jù)庫的問題,通過不同的從網(wǎng)上學習,最終找到了解決的辦法,下面這篇文章主要給大家介紹了關(guān)于C#連接MySQL數(shù)據(jù)庫的方法步驟,需要的朋友可以參考下
    2023-01-01
  • 關(guān)于C#連接SQL Server時提示用戶登錄失敗的解決方法

    關(guān)于C#連接SQL Server時提示用戶登錄失敗的解決方法

    在用C#開發(fā)windows端程序并連接SQL Server時有可能會遇到數(shù)據(jù)庫登錄失敗的問題,下面小編給大家?guī)砹薈#連接SQL Server時提示用戶登錄失敗的解決方法,感興趣的朋友一起看看吧
    2021-11-11
  • C#中變量、常量、枚舉、預處理器指令知多少

    C#中變量、常量、枚舉、預處理器指令知多少

    這篇文章主要介紹了c#共有其中變量類型有:靜態(tài)變量、實類變量、數(shù)組元素、數(shù)值參數(shù)、引用參數(shù)、輸出參數(shù)和局部變量,需要的朋友可以參考一下
    2017-04-04
  • C#如何綁定多個按鈕到同一個事件

    C#如何綁定多個按鈕到同一個事件

    這篇文章主要介紹了C#如何綁定多個按鈕到同一個事件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 帶你一文了解C#中的LINQ

    帶你一文了解C#中的LINQ

    c#提供的ling查詢極大的遍歷了集合的查詢過程,且使用簡單方便,非常的有用,下面這篇文章主要給大家介紹了關(guān)于C#中LINQ的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-12-12
  • C#中DataGridView導出Excel的兩種方法

    C#中DataGridView導出Excel的兩種方法

    這篇文章主要介紹了C#中DataGridView導出Excel的兩種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • C#難點逐個擊破(1):ref參數(shù)傳遞

    C#難點逐個擊破(1):ref參數(shù)傳遞

    一般情況,方法的參數(shù)傳遞是通過值進行傳遞的,另一種情況是引用傳遞,大家可以參考下。
    2010-02-02
  • C#調(diào)用攝像頭實現(xiàn)拍照功能的示例代碼

    C#調(diào)用攝像頭實現(xiàn)拍照功能的示例代碼

    這篇文章主要介紹了C#調(diào)用攝像頭實現(xiàn)拍照功能的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • C# API中模型與它們的接口設(shè)計詳解

    C# API中模型與它們的接口設(shè)計詳解

    這篇文章主要給大家介紹了關(guān)于C# API中模型與它們的接口設(shè)計的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-06-06
  • C#預處理指令之#line,#pragma warning 詳細解析

    C#預處理指令之#line,#pragma warning 詳細解析

    #line 指令可能由生成過程中的自動中間步驟使用。例如,如果行從原始的源代碼文件中移除,但是您仍希望編譯器基于文件中的原始行號生成輸出,則可以移除行,然后用 #line 模擬原始行號
    2014-01-01

最新評論

郸城县| 红安县| 富阳市| 华容县| 普兰店市| 怀来县| 呈贡县| 保康县| 大荔县| 尚义县| 桦南县| 澄迈县| 巨鹿县| 宝山区| 富阳市| 宾阳县| 碌曲县| 林甸县| 韶山市| 昌宁县| 温泉县| 多伦县| 铁岭市| 游戏| 尉氏县| 沐川县| 奇台县| 金川县| 莱芜市| 股票| 洛扎县| 香港| 洱源县| 三亚市| 潮安县| 五指山市| 凤台县| 定襄县| 尖扎县| 都江堰市| 天峻县|