c#學習-base和this在構造函數中的應用


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

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

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM