base 關鍵字用於從派生類中訪問基類的成員:
呼叫基類上已被其他方法重寫的方法。
指定建立派生類例項時應呼叫的基類建構函式。
基類訪問只能在建構函式、例項方法或例項屬性訪問器中進行。
示例:在派生類中呼叫基類方法。
// base 關鍵字
// 訪問基類成員
using system;
public class baseclass
", _classname);}}
class derivedclass : baseclass
");//呼叫基類方法
base.printname();
console.writeline("this derivedclass is ", _classname);}}
/**//*
控制台輸出:
the baseclass name is baseclass
this derivedclass is derivedclass
*/在派生類中呼叫基類建構函式。
// 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()
}/**//*
控制台輸出:
in baseclass()
in baseclass(1)
*/注意點
從靜態方法中使用 base 關鍵字是錯誤的。
base 主要用於物件導向開發的對態這方面,在示例2中有體現。
this
this 關鍵字引用類的當前例項。
以下是 this 的常用用途:
限定被相似的名稱隱藏的成員
將物件作為引數傳遞到其他方法
宣告索引器
示例:綜合示例。
// this 關鍵字
// keywords_this.cs
using system;
class employee
public string name
}public int age
}// 列印雇員資料
public void printemployee()
// 宣告索引器
public string this[int param]
set }}
class print
/nage: ", e.name, e.age);}}
for(int i=0; i<5; i++)
", e[i]);
}console.readline();}}
/**//*
控制台輸出:
name: hunts
age: 21
friends name: scott
friends name: leigh
friends name:
friends name:
friends name: kiwis
*/注意點
由於靜態成員函式存在於類一級,並且不是物件的一部分,因此沒有 this 指標。在靜態方法中引用 this 是錯誤的。
索引器允許類或結構的例項按照與陣列相同的方式進行索引。索引器類似於屬性,不同之處在於它們的訪問器採用引數。
C 在派生類中呼叫基類成員
一 在派生類中呼叫基類成員 在c 的派生類中,我們可以使用base關鍵字呼叫基類中的公有或者受保護成員。這些成員只能是建構函式 例項方法或者例項屬性。base關鍵字呼叫基類成員的語法格式如下 base identifier或 base expression list 注意 base關鍵字不能用在派生...
在派生類中引發基類事件
1 在建立基類時,若涉及到事件,事件是特殊型別的委託,只可以從宣告它們的類中呼叫,派生類無法直接呼叫基類中宣告的事件,但是在多數情況,會需要允許派生類呼叫基類事件,這時,可以再包含該事件的基類中建立乙個受保護的虛呼叫方法,通過呼叫或重寫此呼叫方法,派生類便可以間接呼叫該事件。注 不要在基類中宣告虛擬...
在派生類中引發基類事件
1 事件是特殊的委託,所以只可以在宣告它的類中呼叫。在基類中宣告乙個事件,所以可以在基類中呼叫,而不能在派生類中直接呼叫。但有些情況下,需要在派生類中引用基類事件,實現方法是,在基類中定義乙個受保護的方法引用事件,然後在派生類中重寫基類方法,利用base關鍵字實現間接呼叫基類事件。2 派生類呼叫基類...