<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [畢業(yè)生的商業(yè)軟件開發(fā)之路]C#類型成員樣式

       

      靜態(tài)成員

      使用關(guān)鍵字“static”修飾的類型成員就是靜態(tài)的,類型的字段、屬性、方法、事件、構(gòu)造函數(shù)都可以是靜態(tài)的。例如在上面的PeopleClass中使用了以下代碼定義了一個靜態(tài)方法。

      public static int CalculateAge( DateTime birthday )

      {

          return DateTime.Now.Subtract(birthday).Days / 365;

      }

      這個靜態(tài)方法就是能根據(jù)生日計(jì)算周歲數(shù)的。由于計(jì)算周歲是一個通用的算法,并不局限于某個特定的對象,因此可以將其定義為靜態(tài)類。

      靜態(tài)成員類型無需創(chuàng)建對象實(shí)例即可通過“類型名稱.成員名”的方式調(diào)用。比如以下代碼就能調(diào)用CalculateAge方法。

      DateTime dtm = new DateTime(1980, 2, 14);

      int age = PeopleClass.CalculateAge(dtm);

      對于靜態(tài)類型,通過“實(shí)例變量.成員名”的方式反而不能調(diào)用,比如以下的代碼是錯誤的。

      PeopleClass instance = new PeopleClass();

      DateTime dtm = new DateTime(1980, 2, 14);

      int age = instance.CalculateAge(dtm);

       

      注意調(diào)用靜態(tài)成員C#和VB.NET語法有些差別。在VB.NET中,可以使用“派生的類型名稱.成員名”來調(diào)用靜態(tài)成員,但C#不支持。比如在類型A中定義了靜態(tài)成員M,而從類型A之上派生了類型B,則在VB.NET中可以使用“A.M”或者“B.M”來調(diào)用靜態(tài)成員,但在C#中不能用“B.M”這種寫法。

      例如以下代碼中定義了靜態(tài)方法“Sum”和靜態(tài)字段“Value”,

      public class MyClass

      {

          public static int Value = 100 ;

          public static int Sum(int a, int b)

          {

              return a + b;

          }

      }

       

      這樣我們就可以使用“MyClass.Sum”來調(diào)用這個方法而無需創(chuàng)建對象實(shí)例。若還從這個類型派生了新類型,其代碼如下

      public class OtherClass : MyClass

      {

      }

      則在C#中只能使用“MyClass.Sum”來調(diào)用這個靜態(tài)方法,而在VB.NET中可以有“MyClass.Sum”和“OtherClass.Sum”兩種方式來調(diào)用這個靜態(tài)方法。

       

      靜態(tài)字段

      對于靜態(tài)字段,是可以賦值的,而且靜態(tài)字段作用范圍是整個程序,相當(dāng)于全局變量,比如在任意地方修改了此處的靜態(tài)變量“Value”的值后,其他地方獲得的字段值就是修改后的值。

       

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

      被“static”修飾的無參數(shù)構(gòu)造函數(shù)就是類型的靜態(tài)構(gòu)造函數(shù),例如對于上面的PeopleClass類型中就使用了以下代碼定義了一個靜態(tài)構(gòu)造函數(shù)。

      static PeopleClass()

      {

          System.Console.WriteLine("Start");

      }

      在程序加載的時(shí)候,若程序沒有調(diào)用PeopleClass中的成員,靜態(tài)構(gòu)造函數(shù)不會被調(diào)用,甚至使用typeof操作也不會調(diào)用;但程序中第一次引用了類型的某個成員或者創(chuàng)建了對象實(shí)例前,系統(tǒng)會自動的調(diào)用一次類型的靜態(tài)構(gòu)造函數(shù),而且整個軟件運(yùn)行期間,某個類型的靜態(tài)構(gòu)造函數(shù)只可能調(diào)用一次,不會被重復(fù)調(diào)用的。

      靜態(tài)構(gòu)造函數(shù)適用于延時(shí)進(jìn)行系統(tǒng)初始化的操作,這能加快系統(tǒng)的啟動速度。

       

      注意,靜態(tài)構(gòu)造函數(shù)必須是沒有參數(shù)的,而且肯定是私有的,不能設(shè)置可訪問級別。

       

      實(shí)例成員

      沒有被“static”關(guān)鍵字修飾的類型成員就是實(shí)例成員,比如PeopleClass類型中定義了一個ToString方法,其代碼如下。

      public override string ToString()

      {

          return _Code + " " + _Name;

      }

      此時(shí)不能用“PeopleClass.ToString”來調(diào)用這個方法,必須首先創(chuàng)建對象實(shí)例,然后調(diào)用這個對象實(shí)例的方法,其演示代碼如下

      PeopleClass instance = new PeopleClass( );

      instance.ToString( ) ;

       

      虛擬成員

      被關(guān)鍵字“virtual”修飾的成員類型是虛擬成員,比如以下代碼就包含了一個名為“Sum”的虛擬函數(shù)。

      public class MyClass

      {

          public virtual int Sum(int a, int b)

          {

              return a + b;

          }

      }

      其實(shí)虛擬成員并不虛擬,它可以包含實(shí)質(zhì)性的功能代碼,能完成一定的功能。只不過虛擬成員可以方便的被重載而已,繼承者也可以根據(jù)需要不重載這些虛擬方法。

       

      抽象成員

      被關(guān)鍵字“abstract”修飾的類型成員就是抽象成員。抽象成員只能是屬性、方法和索引器。以下代碼就定義了一個抽象方法。

      public abstract int Sum(int a, int b) ;

      在這段代碼中,“public”說明方法是公開的;“abstract”說明這是一個抽象的成員;“int”為方法的返回值類型;“Sum”為方法的名稱;“int a , int b”為方法的參數(shù)列表。

      定義抽象類型和定義接口的方法類似,只需要寫出成員的聲明即可,但還需要寫出抽象成員的可訪問性。

      抽象成員必須出現(xiàn)在抽象類中,而且在從抽象類派生新類型時(shí),所有的抽象方法必須重寫以填充方法體。

       

      抽象成員和虛擬成員是有區(qū)別的,抽象成員不能定義任何實(shí)質(zhì)的功能,必須被重載;而虛擬成員必須包含完整的代碼結(jié)構(gòu),可以包含實(shí)質(zhì)功能,可以不被重載。[袁永福版權(quán)所有]

      常數(shù)成員

      被關(guān)鍵字“const”修飾的成員字段為常數(shù)字段,可以使用“類型名稱.字段名”來引用常數(shù)。比如以下代碼就包含了一個常數(shù)

      public class MyClass

      {

          public const double PI = 3.1415926;

      }

      對此我們可以使用“MyClass.PI”來獲得這個常數(shù)值。常數(shù)值是不能修改的,比如對于賦值代碼“MyClass.PI = 3.14;”就是錯誤的;相對于的,靜態(tài)字段是可以被修改的,比如此處使用代碼“public static double PI = 3.1415926;”來定義這個字段,則就可以對這個字段賦值了。

       

      posted on 2011-08-04 13:40  袁永福 電子病歷,醫(yī)療信息化  閱讀(591)  評論(0)    收藏  舉報(bào)

      導(dǎo)航

      主站蜘蛛池模板: 丰满岳乱妇久久久| 国内极度色诱视频网站| 久久亚洲美女精品国产精品| 亚洲综合精品第一页| 中文字幕久久熟女蜜桃| 日韩av一区二区三区在线| 亚洲AV旡码高清在线观看| 国产中文三级全黄| 性一交一乱一乱一视频| 鲁丝片一区二区三区免费| 少妇激情a∨一区二区三区| 一本色道久久东京热| 最新中文字幕国产精品| 亚洲欧美日韩人成在线播放| 人人爽人人爽人人片a免费| 久久大香萑太香蕉av黄软件| 亚洲国产成人综合精品| 午夜福利片1000无码免费| 国产精品疯狂输出jk草莓视频| 久久精品日日躁夜夜躁| 免费无码影视在线观看mov| 国产对白老熟女正在播放| a级国产乱理伦片在线观看al| 亚洲少妇一区二区三区老| 亚洲日本韩国欧美云霸高清| 国产一区二区黄色在线观看| 午夜性色一区二区三区不卡视频| 四虎永久精品在线视频| 综合久久av一区二区三区| 欧洲精品码一区二区三区| 久久亚洲精品成人综合网| 国产精品深夜福利免费观看| 国产一区二区午夜福利久久| 精品偷拍一区二区三区| 久久精品中文字幕有码| 免费观看全黄做爰大片| 国产精品白丝久久AV网站| 国产电影无码午夜在线播放| 国产又爽又黄又爽又刺激| 亚洲鸥美日韩精品久久| 91麻豆亚洲国产成人久久|