老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

C#如何構造函數

本篇內容主要講解“C#如何構造函數”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#如何構造函數”吧!

創新互聯公司是一家專注于網站建設、成都網站設計與策劃設計,清豐網站建設哪家好?創新互聯公司做網站,專注于網站建設十多年,網設計領域的專業建站公司;建站業務涵蓋:清豐等地區。清豐做網站價格咨詢:028-86922220

CLR Via C#中構造函數是可以將類型實例初始化為有效狀態的特殊方法。構造函數在元數據中通常用.ctor來表示,通過IL代碼可以看到。在創建一個類型的實例時,通常分為三步:

1 為實例的數據字段分配內存。

2 創建對象指針和同步索引塊。

3 調用類型的實例構造器來設置對象的初始狀態。

CLR Via C#中引用類型的實例構造器

在創建一個引用類型的對象是,調用類型的實例構造函數之前,會將對象分配的內存做清零處理,就是說在構造函數中沒有顯示賦值的所有字段都將設置為0或null。

實例構造函數和一般方法不同,他永遠都不能被繼承,所有以下的關鍵字也不能用于實例構造函數(virtual new override sealed abstract)。

一個類中如果沒有顯示定義任何構造函數,C#編譯器將定義一個默認的無參構造函數。

抽象(abstract)類的默認構造函數的訪問修飾符為protected。

構造函數可以初始化字段,不過在c#語言中提供了一種簡單的方法,在定義字段的時候直接賦值以初始化。如下:

public class User2  {     private int _age = 25;     private string _name = "oec2003";  }

像上面那樣的確很方便,但如果有好幾個已經初始化的實例字段和多個重載的構造函數同時存在的情況下,就應該將實例字段的初始化放到一個公共的構造函數中,其他的構造函數通過this來顯示調用該構造函數,這樣可以減少代碼生成的大小,看下面的例子。

public abstract  class User  {      private int _age=25;      private string _name="oec2003";      private string _email = "oec2003@gmail.com";       public User(Int32 age)      {          this._age = age;     }      public User(string name)     {         this._name = name;     }      public User(Int32 age, String name, String email)     {         this._age = age;         this._name = name;         this._email = email;     }

正確的寫法應該像下面這樣

public abstract  class User  {      private int _age;      private string _name;      private string _email;       public User()      {           _age=25;          _name="oec2003";          _email = "oec2003@gmail.com";      }       public User(Int32 age):this()      {          this._age = age;      }       public User(string name):this()      {          this._name = name;      }       public User(Int32 age, String name, String mail):this()      {          this._age = age;          this._name = name;          this._email = email;      }  }

CLR Via C#中值類型的實例構造函數

值類型的實例構造函數和引用類型的有很大不同,在值類型中不能含有無參的構造函數,如果顯式指定無參的構造函數將會出現編譯錯誤。如下面代碼會出現編譯錯誤:

struct User  {      public Int32 _age;       public String _name;        public User()      {           _age = 25;           _name = "oec2003";      }  }

值類型不能包含無參的構造函數,也不能在值類型中給字段進行初始化,下面的代碼也將不能通過編譯。

public struct User  {      public Int32 _age=25;      public String _name="oec2003";  }

在值類型中也可以有構造函數,不過該構造函數必須含有參數,而且要初始化所有的字段。含有參數但沒有初始化所有字段的構造函數也不能通過編譯。看下面代碼:由此可見如果值類型中顯示包含構造函數必須要初始化所有的字段。

如果有多個構造函數,每個構造函數也必須保證初始化所有的字段,否則不能通過編譯。如果值類型中不包含構造函數,實例化時所有字段將設置為0或null。

public struct User   {       public Int32 _age;       public String _name;       //只初始化了_age       public User(Int32 age)       {           _age = age;       }      public User(Int32 age,String name)      {          _age = age;          _name = name;      }  }

CLR Via C#中類型構造函數

類型構造函數也被稱為靜態構造函數。靜態構造函數可以用于引用類型和值類型。和實例構造函數不同的是靜態構造函數在一個類型中永遠只有一個,并且不能包含參數。靜態構造函數中只能初始化靜態字段。

下面代碼分別展示在值類型(和實力構造函數不同,值類型中允許顯示定義無參的靜態構造函數)和引用類型中的靜態構造函數。

//值類型   public struct User  {       public static Int32 _age ;           public static String _name;        static User()       {           _age = 25;          _name = "oec2003";      }  }  //引用類型  public class User  {      public static Int32 _age ;          public static String _name;       static User()      {          _age = 25;          _name = "oec2003";      }  }

為了防止開發人員編寫的代碼調用靜態構造函數,C#編譯器會將靜態構造函數定義為私有(private)的,并且不能顯示地給靜態構造函數添加訪問修飾符,如果這么做了會出現編譯錯誤。

上面講到過在值類型中不能在定義是給實例字段賦值,否則會編譯錯誤,但可以在定義時給靜態字段賦值,看下面代碼:

public struct User  {    public static Int32 _age = 25;    //正確 可以初始化靜態字段      public String _name = "oec2003";  //錯誤 不能初始實例字段  }

CLR Via C#中靜態構造函數不應該去調用基類的靜態構造函數,因為靜態字段是不會被繼承到子類中,所以這樣做沒有意義。

到此,相信大家對“C#如何構造函數”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!


網站名稱:C#如何構造函數
文章路徑:http://www.xueling.net.cn/article/gichij.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 国产aa级| 三级中文字幕在线观看 | 成人毛片免费看 | 国产一区二区怡红院 | 超碰国产91 | 中字精品| 年轻的老师4| 久久福利网站 | 日韩亚洲在线视频 | 国产成人综合亚洲色就色 | 老司机天堂| 18久久久久久 | 国内精品久久久久影院优 | 狠狠躁夜夜躁青青草原软件 | 国产精品久久久久久久久久10秀 | 欧美黄色一区二区三区 | 成人a视频在线观看 | 欧美a级v片在线观看 | 男人一边吃奶一边弄下边好爽 | 国产欧美日韩精品一区二区被窝 | 久久95| 呻吟求饶的办公室人妻 | 3344成人免费看A片 | 一本大道久久东京热无码av | 乱肉合集乱高h交换 | 久草网站 | 国产乱子伦精品免费女 | 久久久久国产精品熟女影院浪 | 久久9国产偷伦 | 国产黄色自拍视频 | JAPANESE日本爆乳巨大 | 中国黄色片在线观看 | 日日操操操 | 999在线 | 一个人看的视频www在线观看 | 欧美xxxx做受欧美88bbw | 一区二区三区的视频 | 全免费A级毛片免费看无码 四虎国产精品成人免费久久 | 少妇性色生活片在线观看 | 99热偷拍 | 亚洲精品456在线播放狼人 |