學習Base關鍵字

2021-09-09 02:59:01 字數 1435 閱讀 1343

它與this關鍵字一樣,都是作為類的例項(因此不能呼叫基類的靜態成員和抽象成員)簡寫或者替代而存在的,只不過this關鍵字用於替代本類的例項,base關鍵字用於替代基類的例項,用法很簡單,其訪問基類的形式如下:

base.【識別符號】

base[【表示式列表】]      這個型別的一看便可以大概猜測多用於基類例項的索引器操作,在***演示的**中你會看到它的用法。

對於  base.【識別符號】的訪問形式再次說明一下:

對於非虛方法,這種訪問僅僅是對基類例項成員的直接訪問,完全等價於((base)this).【識別符號】。

對於虛方法,對於這種訪子類重寫該虛方法運用這種訪問形式也是(禁用了虛方法呼叫的機制)對基類例項成員的直接訪問,將其看做非虛方法處理,此時則不等價於((base)this).【識別符號】,因為這種格式完全遵守虛方法呼叫的機制,其宣告試時為積累型別,執行時為子類型別,所以執行的還是子類的重寫方法。於未重寫的虛方法等同於簡單的非虛方法處理。

測試**如下:

using

system;

namespace

basetest

public

virtual

void

f2()

//virtual method

public

virtual

void

f3()

public

string

this

[int

index

]else

}get

else}}

}class

child

:father

public

override

void

f2()

static

void

main(

string

args)

}} base用於建構函式宣告,用法和this用於建構函式宣告完全一致,但base是對基類建構函式形參的匹配。

using

system;

namespace

basecotest

public

base(

inta)

public

base()

}class

sub:

base

public

sub(

inta)

:base(

1, "123")

class

test}}

}

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...