中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

C#中怎么調用構造函數

這篇文章給大家介紹C#中怎么調用構造函數,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

成都創新互聯主要從事成都網站建設、網站建設、網頁設計、企業做網站、公司建網站等業務。立足成都服務鄠邑,10年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:18980820575

C#調用構造函數是如何的呢?讓我們首先來看看什么是構造函數?

C#調用構造函數之構造函數定義:它是在創建給定類型的對象時執行的類方法。構造函數具有與類相同的名稱,它通常初始化新對象的數據成員。

在下面的示例中,定義了一個具有一個簡單的構造函數,名為 Taxi 的類。然后使用 new 運算符來實例化該類。在為新對象分配內存之后,new 運算符立即調用 Taxi 構造函數。

C#調用構造函數實例

public class Taxi  {  public bool isInitialized;  public Taxi()  {  isInitialized = true;  }  }   class TestTaxi  {  static void Main()  {  Taxi t = new Taxi();  System.Console.WriteLine(t.isInitialized);  }  }

不帶參數的構造函數稱為“默認構造函數”。無論何時,只要使用 new 運算符實例化對象,并且不為 new 提供任何參數,就會調用默認構造函數。有關更多信息,請參見 實例構造函數。

除非類是 static 的,否則 C# 編譯器將為無構造函數的類提供一個公共的默認構造函數,以便該類可以實例化。有關更多信息,請參見 靜態類和靜態類成員。

通過將構造函數設置為私有構造函數,可以阻止類被實例化,如下所示:

C#調用構造函數實例

class NLog  {  // Private Constructor:  private NLog() { }   public static double e = System.Math.E;  //2.71828...  }

有關更多信息,請參見 私有構造函數。

結構類型的構造函數與類的構造函數類似,但是 structs 不能包含顯式默認構造函數,因為編譯器將自動提供一個構造函數。此構造函數將結構中的每個字段初始化為 默認值表中顯示的默認值。然而,只有當結構用 new 實例化時,才會調用此默認構造函數。例如,下面的代碼使用 Int32 的默認構造函數,因此您可以確信整數已初始化:

int i = new int();  Console.WriteLine(i);

然而,下面的代碼卻導致了 編譯器錯誤 CS0165,因為它沒有使用 new,而且試圖使用尚未初始化的對象:

int i;  Console.WriteLine(i);

基于 structs 的對象可以初始化或賦值后使用,如下所示:

int a = 44;  // Initialize the value type...  int b;  b = 33;  // Or assign it before using it.  Console.WriteLine("{0}, {1}", a, b);

因此對值類型調用默認構造函數不是必需的。

類和 structs 都可以定義具有參數的構造函數。帶參數的構造函數必須通過 new 語句或 base 語句來調用。類和 structs 還可以定義多個構造函數,并且二者均不需要定義默認構造函數。例如:

C#調用構造函數實例

public class Employee  {  public int salary;   public Employee(int annualSalary)  {  salary = annualSalary;  }   public Employee(int weeklySalary, int numberOfWeeks)  {  salary = weeklySalary * numberOfWeeks;  }  }

此類可以使用下列語句中的任一個來創建:

C#調用構造函數實例

Employee e1 = new Employee(30000);  Employee e2 = new Employee(500, 52);

構造函數可以使用 base 關鍵字來調用基類的構造函數。例如:

C#調用構造函數實例

public class Manager : Employee  {  public Manager(int annualSalary)  : base(annualSalary)  {  //Add further instructions here.  }  }

在此示例中,基類的構造函數在執行構造函數塊之前被調用。base 關鍵字可帶參數使用,也可不帶參數使用。構造函數的任何參數都可用作 base 的參數,或用作表達式的一部分。有關更多信息,請參見 base。

在派生類中,如果不使用 base 關鍵字來顯式調用基類構造函數,則將隱式調用默認構造函數(如果有的話)。這意味著下面的構造函數聲明在效果上是相同的:

C#調用構造函數實例

public Manager(int initialdata)  {  //Add further instructions here.  }   public Manager(int initialdata) : base()  {  //Add further instructions here.  }

如果基類沒有提供默認構造函數,派生類必須使用 base 顯式調用基構造函數。

構造函數可以使用 this 關鍵字調用同一對象中的另一構造函數。和 base 一樣,this 可帶參數使用也可不帶參數使用,構造函數中的任何參數都可用作 this 的參數,或者用作表達式的一部分。例如,可以使用 this 重寫前一示例中的第二個構造函數:

public Employee(int weeklySalary, int numberOfWeeks)  : this(weeklySalary * numberOfWeeks)  {  }

上面對 this 關鍵字的使用導致此構造函數被調用:

public Employee(int annualSalary)  {  salary = annualSalary;  }

構造函數可以標記為 public、 private、 protected、 internal 或 protectedinternal。這些訪問修飾符定義類的用戶構造該類的方式。有關更多信息,請參見 訪問修飾符。

關于C#中怎么調用構造函數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

名稱欄目:C#中怎么調用構造函數
文章起源:http://m.2m8n56k.cn/article6/jdsiig.html

成都網站建設公司_創新互聯,為您提供網站內鏈網站制作網站改版網站收錄域名注冊網站排名

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設
主站蜘蛛池模板: 成人精品一区二区三区中文字幕 | 综合中文字幕 | 国产精品免费大片 | 欧美精品亚洲精品日韩一区 | 国内精品久久久久久久aa护士 | 久久久国产精品网站 | 综合久久久久久 | 欧美在线高清 | 国产高清一区 | 精品午夜久久网成年网 | 国产女乱淫真高清免费视频 | 八戒午夜精品视频在线观看 | 欧美的高清视频在线观看 | 日本高清va不卡视频在线观看 | 久久精品国产一区二区 | 亚洲欧美日本国产 | 欧美变态一级毛片 | 亚欧成人毛片一区二区三区四区 | 美国毛片亚洲社区在线观看 | 国产婷婷成人久久av免费高清 | 毛片直接看 | 91热视频在线观看 | 一级a俄罗斯毛片免费 | 久久手机视频 | 美女被男人桶到嗷嗷叫爽网站 | 久久精品国产欧美成人 | caoporen免费公开视频上传 | 欧美日本色 | 亚洲精品久久久久久久福利 | 欧美第一视频 | 黄色a站 | 久久国产精品亚洲 | 91精品啪在线观看国产91九色 | 精品国产免费一区二区三区 | 九九re6精品视频在线观看 | 毛片高清 | 永久黄网站色视频免费网站 | 日韩在线亚洲 | 亚洲精品第一国产综合野 | 亚洲毛片在线观看 | 欧美激情精品久久久久久久久久 |