[英]What is the function of the "this" keyword in a constructor?
我剛才正在查看來自 MSDN 的示例代碼並遇到:
namespace IListSourceCS
{
public class Employee : BusinessObjectBase
{
private string _id;
private string _name;
private Decimal parkingId;
public Employee() : this(string.Empty, 0) {} // <<--- WHAT IS THIS???
public Employee(string name) : this(name, 0) {}
它使用該簽名調用該類中的另一個構造函數。 它是根據其他構造函數實現構造函數的一種方式。 base
也可以用來調用基類的構造函數。 您必須有一個與之匹配的簽名構造函數才能工作。
這使您可以使用 (string, int) 參數調用 Employee (current) 類的另一個構造函數。
這是一種初始化對象的技術,稱為構造函數鏈接
這個示例可能有助於一些不同的派生......第一個顯然在創建實例時有兩個構造函數方法......例如
FirstClass oTest1 = new FirstClass(); 或 FirstClass oTest1b = new FirstClass(2345);
SECOND 類派生自 FirstClass。 注意它也有多個構造函數,但一個是兩個參數......雙參數簽名調用(第二個類的)“this()”構造函數......這反過來又調用了BASE CLASS( FirstClass) 帶有整數參數的構造函數...
因此,在創建從其他類派生的類時,您可以引用其 OWN 類構造函數方法,或者其基類...類似地在代碼中,如果您 OVERRIDE 一個方法,您可以在 BASE() 方法之外執行一些操作...
是的,比您可能感興趣的要多,但也許這個澄清也可以幫助其他人......
public class FirstClass
{
int SomeValue;
public FirstClass()
{ }
public FirstClass( int SomeDefaultValue )
{
SomeValue = SomeDefaultValue;
}
}
public class SecondClass : FirstClass
{
int AnotherValue;
string Test;
public SecondClass() : base( 123 )
{ Test = "testing"; }
public SecondClass( int ParmValue1, int ParmValue2 ) : this()
{
AnotherValue = ParmValue2;
}
}
constructor
是一種特殊的方法/函數,用於初始化基於類創建的對象。 這是您運行初始化的地方,因為設置默認值,以各種方式初始化成員。
“ this
”是一個特殊的詞,它指向您所在的對象。將其視為對象本身內的對象引用,用於訪問內部方法和成員。
查看以下鏈接:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.