C 中base關鍵字的幾種用法

2021-08-08 17:39:43 字數 2225 閱讀 8442

base其實最大的使用地方在面相對性開發的多型性上,base可以完成建立派生類例項時呼叫其基類建構函式或者呼叫基類上已被其他方法重寫的方法。

例如:

2.1關於base呼叫基類建構函式

public

classa}

public

class

b:a

static

void

main()

}

建立乙個b的例項物件,獲得結果是同時列印build a和build b.

2.2關於base在派生類中呼叫基類的方法。

public

classa}

public

class

b : a

}

這樣如果程式呼叫b.hello()獲得的效果將會使hello world.

最後補充下,根據msdn library介紹來看這兩個關鍵字都是屬於[訪問關鍵字]型別

+++++++++++++++++++++++++++++ 無敵分割線 +++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++ 文章二 +++++++++++++++++++++++++++++

關於base

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

呼叫基類上已被其他方法重寫的方法。

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

基類訪問只能在建構函式、例項方法或例項屬性訪問器中進行。

示例:1. 在派生類中呼叫基類方法。

using

system;

public

class

baseclass

", _classname);

}}class

derivedclass : baseclass");

//呼叫基類方法

base

.printname();

console.writeline(

"this derivedclass is

", _classname);

}}class

}

2. 在派生類中呼叫基類建構函式。

//

keywords_base2.cs

using

system;

public

class

baseclass

public baseclass(int

i) )

", num);

}}public

class

derivedclass : baseclass

//該構造器呼叫 baseclass.baseclass(int i)

public derivedclass(int

i) :

base

(i)

static

void

main()

}

注意:

從靜態方法中使用 base 關鍵字是錯誤的。

base 主要用於物件導向開發的對態這方面,在示例2中有體現。

關於this

this 關鍵字引用類的當前例項。

以下是 this 的常用用途:

限定被相似的名稱隱藏的成員

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

宣告索引器

示例:

//

this 關鍵字

//keywords_this.cs

using

system;

class

employee

public

string

name

}public

intage

}//列印雇員資料

public

void

printemployee()

//宣告索引器

public

string

this[int

param]

set

}}class

print

\nage:

", e.name, e.age);

}}class

", e[i]);

}console.readline();}}

C 中Base關鍵字的幾種用法

base其實最大的使用地方在面相對性開發的多型性上,base可以完成建立派生類例項時呼叫其基類建構函式或者呼叫基類上已被其他方法重寫的方法。例如 public classa public classb astatic void main 建立乙個b的例項物件,獲得結果是同時列印build a和bui...

base關鍵字 this關鍵字

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

C 中this和base關鍵字

this 指的是這個物件本身,主要用於 在定義類時,寫上this.後vs會出現這個類中非靜態的成員,智慧型提示。一般在建構函式中使用,區分欄位和區域性變數 class person 用於在建構函式中呼叫兩乙個建構函式 class person public person string name,in...