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

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

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

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

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

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ū)別有以下幾點(diǎn):

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)類不能包含訪問修飾符,默認(rèn)為private.

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

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

 

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

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

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)字段來記錄一些屬于類本身的信息。

 

代碼演示


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

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);
         }
     }

運(yùn)行結(jié)果


從運(yùn)行結(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)文章

  • FTPClientHelper輔助類 實現(xiàn)文件上傳,目錄操作,下載等操作

    FTPClientHelper輔助類 實現(xiàn)文件上傳,目錄操作,下載等操作

    這篇文章主要分享了一個FTPClientHelper輔助類和介紹了常用的FTP命令,需要的朋友可以參考下。
    2016-06-06
  • 深入解析C#中的交錯數(shù)組與隱式類型的數(shù)組

    深入解析C#中的交錯數(shù)組與隱式類型的數(shù)組

    這篇文章主要介紹了深入解析C#中的交錯數(shù)組與隱式類型的數(shù)組,隱式類型的數(shù)組通常與匿名類型以及對象初始值設(shè)定項和集合初始值設(shè)定項一起使用,需要的朋友可以參考下
    2016-01-01
  • c# 應(yīng)用事務(wù)的簡單實例

    c# 應(yīng)用事務(wù)的簡單實例

    這篇文章介紹了c# 應(yīng)用事務(wù)的簡單實例,有需要的朋友可以參考一下
    2013-09-09
  • C# XML基礎(chǔ)入門小結(jié)(XML文件內(nèi)容增刪改查清)

    C# XML基礎(chǔ)入門小結(jié)(XML文件內(nèi)容增刪改查清)

    本文主要介紹了C# XML基礎(chǔ)入門小結(jié)(XML文件內(nèi)容增刪改查清),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C#生成餅形圖及添加文字說明實例代碼

    C#生成餅形圖及添加文字說明實例代碼

    這篇文章主要介紹了C#生成餅形圖及添加文字說明的方法,非常實用的功能,需要的朋友可以參考下
    2014-07-07
  • C#實現(xiàn)啟動項管理的示例代碼

    C#實現(xiàn)啟動項管理的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)啟動項管理,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • C#基于數(shù)據(jù)庫存儲過程的AJAX分頁實例

    C#基于數(shù)據(jù)庫存儲過程的AJAX分頁實例

    這篇文章主要介紹了C#基于數(shù)據(jù)庫存儲過程的AJAX分頁實現(xiàn)方法,以實例形式詳細(xì)講述了數(shù)據(jù)庫存儲過程的定義、數(shù)據(jù)庫的訪問及Ajax的實現(xiàn)技巧,需要的朋友可以參考下
    2015-01-01
  • C#實現(xiàn)將CSV轉(zhuǎn)為XLSX文件

    C#實現(xiàn)將CSV轉(zhuǎn)為XLSX文件

    Microsoft?Excel的XLSX格式以及基于文本的CSV(逗號分隔值)格式,是數(shù)據(jù)交換中常見的文件格式,本文主要介紹了如何在C#中以編程的方式將CSV文件轉(zhuǎn)化為XLSX?文件,需要的可以參考下
    2024-03-03
  • 談C# using的用法與好處

    談C# using的用法與好處

    這篇文章主要為大家詳細(xì)介紹了C# using的用法與好處,具體分析了using指令調(diào)用的Dispose()方法,感興趣的朋友可以參考一下
    2016-05-05
  • C#強(qiáng)制類型轉(zhuǎn)換小結(jié)

    C#強(qiáng)制類型轉(zhuǎn)換小結(jié)

    任何一門編程語言均有相關(guān)數(shù)據(jù)類型。C#也不例外,不過轉(zhuǎn)換過程要注意小類型能轉(zhuǎn)換成大類型,但大類型一般不能轉(zhuǎn)換成小類型,下面小編給大家詳解C#強(qiáng)制類型轉(zhuǎn)換小結(jié),需要的朋友參考下吧
    2017-07-07

最新評論