C 關鍵字之base與this詳解

2021-09-12 15:29:21 字數 2045 閱讀 1769

base、this 屬於 c# 的訪問關鍵字。

一、base 關鍵字

base 用於從派生類中訪問基類的成員:

注:從靜態方法中使用 base 關鍵字是錯誤的。另base 主要用於物件導向開發的多型。

所訪問的基類是類宣告中指定的基類,如,指定 class classb : classa,則從 classb 訪問 classa 的成員,而不考慮 classa 的基類。

示例1、基類person和派生類employee都有乙個名為getinfo的方法。 通過使用base關鍵字,可以從派生類中呼叫基類的getinfo方法。

public class person

", name);

console.writeline("ssn: ", ssn);

}}class employee : person

", id);

}}class testclass}/*

output

name: john l. malgraine

ssn: 444-55-6666

employee id: abc567efg

*/

示例

二、指定在建立派生類例項時呼叫的基類建構函式。

public class baseclass

public baseclass(int i)

public int getnum()

}public class derivedclass : baseclass

// this constructor will call baseclass.baseclass(int i)

public derivedclass(int i) : base(i)

static void main()

}/*output:

in baseclass()

in baseclass(int i)

*/

二、this 關鍵字

this 關鍵字指代類的當前例項,還可用作擴充套件方法的第乙個引數的修飾符。

1、限定被類似名稱隱藏的成員;

public class employee

}

2、將物件作為引數傳遞到其他方法;

calctax(this);
3、宣告索引器。

public int this[int param]

set

}

注:靜態成員函式,因為它們存在於類級別且不屬於物件,不具有this指標。 在靜態方法中引用this是錯誤的。

示例:在此示例中,this用於限定類似名稱隱藏的employee類成員、namealias。 它還用於將某個物件傳遞給屬於其他類的方法calctax

class employee

// printing method:

public void printemployee()

\nalias: ", name, alias);

// passing the object to the calctax method by using this:

console.writeline("taxes: ", tax.calctax(this));

}public decimal salary

}}class tax

}class mainclass}/*

output:

name: mingda pan

alias: mpan

taxes: $240.00

*/

base關鍵字 this關鍵字

用於在派生類中實現對基類公有或者受保護成員的訪問,但是只侷限在建構函式 例項方法和例項屬性訪問器中。功能主要包括 1 呼叫基類上已被其他方法重寫的方法。2 指定建立派生類例項時應呼叫的基類建構函式。base常用於,在派生類物件初始化時和基類進行通訊。base可以訪問基類的公有成員和受保護成員,私有成...

new關鍵字 this關鍵字 base關鍵字

使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...

base 關鍵字 類

通過base 關鍵字訪問基類的成員 呼叫基類上已被其他方法重寫的方法。指定建立派生類例項時應呼叫的基類建構函式。基類訪問只能在建構函式 例項方法或例項屬性訪問器中進行。從靜態方法中使用 base 關鍵字是錯誤的。例項 using system public class parent string p...