自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

介紹C#構(gòu)造函數(shù)的使用方法

開發(fā) 后端
C#構(gòu)造函數(shù)是一個(gè)特殊的類方法。本文就介紹了C#構(gòu)造函數(shù)的使用及其規(guī)則。

C#構(gòu)造函數(shù)是一個(gè)特殊的類方法。在很多方面,包括訪問修飾符、重載以及參數(shù)列表的語法等方面,構(gòu)造函數(shù)與普通的方法是類似的。然而,在使用方面以及行為方面,構(gòu)造函數(shù)也具有許多特殊的語法和語義規(guī)則。

下面列出C#構(gòu)造函數(shù)在使用方面及行為方面的一些特殊規(guī)則:

1、如果開發(fā)人員沒有為一個(gè)類提供構(gòu)造函數(shù),那么,C#將提供一個(gè)默認(rèn)的構(gòu)造函數(shù)。

2、必須使用操作符 new 來調(diào)用一個(gè)構(gòu)造函數(shù)。

3、構(gòu)造函數(shù)的名稱必須與類的名稱相同。

4、一個(gè)構(gòu)造函數(shù)的返回類型是這個(gè)類的一個(gè)實(shí)例,而一個(gè)普通方法的返回類型可以是任何類型。

5、構(gòu)造函數(shù)不能覆蓋一個(gè)超類的構(gòu)造函數(shù),因此,new、virtual、override、abstact以及sealed關(guān)鍵字不能在構(gòu)造函數(shù)聲明語句中使用。

6、利用 :this() 和 :base(),構(gòu)造函數(shù)可以調(diào)用其他構(gòu)造函數(shù)。

在聲明一個(gè)構(gòu)造函數(shù)的時(shí)候,如果沒有使用 :this() 或 :base()來顯式地調(diào)用其他構(gòu)造函數(shù),那么C#就插入一個(gè)無參數(shù)的 :base()。這可能產(chǎn)生令人驚奇的結(jié)果,看一下代碼: 

  1. using System;  
  2.  
  3.  public class Father  
  4.  {  
  5.      //private string name;  
  6.      //public Father(string name)  
  7.      //{  
  8.          //this.name = name;  
  9.      //}  
  10.  }  
  11.  
  12.  public class Child :Father  
  13.  {  
  14.                
  15.  } 

這段代碼是可以編譯的,但是,如果把注釋標(biāo)記“//”去除,那么這段代碼就無法通過編譯。原因就在于,在子類 Child 中的默認(rèn)構(gòu)造函數(shù)是不帶參數(shù)的,另外,在默認(rèn)情況下,一個(gè)類的構(gòu)造函數(shù)可以調(diào)用其超類中不帶參數(shù)的構(gòu)造函數(shù)。然而,這個(gè) Father 類的構(gòu)造函數(shù)需要接收一個(gè) String 類型的參數(shù),這意味著編譯器無法提供一個(gè)默認(rèn)的構(gòu)造函數(shù)。在沒有提供參數(shù)的情況下,Child 類的默認(rèn)構(gòu)造函數(shù)就無調(diào)用超類的構(gòu)造函數(shù)。解決辦法參照規(guī)則 6 即可解決,修改 Child 類:

  1. public class Child :Father  
  2. {  
  3.        public Child(string name) : base(name) { }        

本文參照了 Steven John Metsker 編著的《C# 設(shè)計(jì)模式》中《構(gòu)造型模式介紹》一文。

C#構(gòu)造函數(shù)的使用方法就介紹到這里。 

【編輯推薦】

  1. 概述C#泛型機(jī)制
  2. 淺析C#異步套接字的實(shí)現(xiàn)過程
  3. 解析C#關(guān)鍵字之get、set、value、partial、where和yield
  4. 巧思妙解byte常用擴(kuò)展
  5. 編程入門:C#類型和C#變量
責(zé)任編輯:book05 來源: hi.baidu
相關(guān)推薦

2009-07-31 14:15:38

C# 構(gòu)造函數(shù)

2011-07-13 11:34:58

CC++時(shí)間函數(shù)

2009-08-13 13:42:54

C#構(gòu)造函數(shù)

2024-05-21 11:09:17

2009-08-25 16:54:28

C# RichText

2009-11-16 16:54:00

PHP構(gòu)造函數(shù)

2009-08-14 09:27:27

C#構(gòu)造函數(shù)的特性

2009-09-08 14:54:40

C# listBox控

2009-08-28 16:31:21

C# treeview

2009-08-24 18:09:13

C#構(gòu)造函數(shù)

2009-07-30 15:24:13

C#析構(gòu)函數(shù)C#構(gòu)造函數(shù)

2010-02-02 09:49:02

C++模板

2010-01-25 14:10:21

C++堆棧

2009-09-01 15:25:04

C# default關(guān)

2009-08-13 17:38:42

C#構(gòu)造函數(shù)

2009-12-01 19:02:20

PHP取整函數(shù)

2009-08-14 09:15:28

C#調(diào)用構(gòu)造函數(shù)

2009-07-31 15:44:02

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

2009-07-31 15:37:45

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

2009-09-04 11:15:07

選擇C#構(gòu)造函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)