this 關鍵字所指的是類別 (class) 的目前執行個體 (instance),而且也用來當做擴充方法之第乙個引數的修飾詞 (modifier)。
以下為 this 的常見用法:
this關鍵字使用的地方:
1,索引
2,this簡單的說,表示所在類.準確的說是代表類的對像.
3,其他場合.代表建構函式
//要限定被類似名稱所隱藏的成員,例如:
public
employee(
string
name,
string
alias) //
要將物件做為引數傳遞到其他方法,例如:
calctax(
this
);//
要宣告索引子,例如:
public
intthis
[int
param]
set}
//因為靜態成員函式存在於類別層級,且非物件的一部分,所以不具有 this 指標。在靜態方法中參考 this 是錯誤的。
base 關鍵字用於訪問衍生類別中的基底類別 (base class) 成員:
呼叫乙個已被其他方法覆寫之基底類別中的方法。
指定建立衍生類別執行個體時,所要呼叫的基底類別建構函式。
基底類別只允許在建構函式、執行個體方法 (instance method) 或執行個體屬性訪問子中訪問。
在靜態方法中使用 base 關鍵字是錯誤的。
//於此例中,基底類別 person 和衍生類別 employee 都有乙個名為 getinfo 的方法。使用
//base 關鍵字,就可以從衍生類別中呼叫基底類別的 getinfo 方法。
//accessing base class members
using
system;
public
class
person
", name);
console.writeline(
"ssn:
", ssn);}}
class
employee : person
", id);}}
class
testclass}//
此範例顯示了在建立衍生類別的執行個體時,要如何指定呼叫的基底類別建構函式。
using
system;
public
class
baseclass
public
baseclass(
inti)
public
intgetnum()
}public
class
derivedclass : baseclass
//this constructor will call baseclass.baseclass(int i)
public
derivedclass(
inti) :
base
(i)static
void
main()}
/*base
簡單點的說,代表直接父類.
如果子類的父類還有父類,這時base只能訪問到它的直接父類
也就說說父類的父類是沒有辦法訪問到的.
1,使用base可以訪問父類中的成員
2,使用父類建構函式.
* */
using
system;
using
traffic;
namespace
test}}
namespace
traffic
public
vehicle(
string
name)
public
vehicle(
string
name,
intspeed)
public
void
getname()
//成員方法
}public
class
car:vehicle
//base(name,200)中的name是直接傳入的car(string name)中的name
//因此這裡在name前不需要有資料型別
//這裡會先執行父類的再執行子類的建構函式
public
car(
string
name,
intspeed):
base
(name,speed)
}public
class
gaojicar:car}}
c 語法學習
迴圈和關係表示式 for迴圈 表示式和語句 遞增和遞減,字首式效率更高 組合賦值操作符 復合語句 逗號操作符 關係操作符,和 while迴圈 typedef工具 dowhile迴圈 get 字元輸入方法 檔案尾條件 巢狀迴圈和二維數值 strcmp a,b 判斷兩個字串是否相等 cin如何處理字元輸...
C 基礎語法學習
基本用語區分 解決方案和專案 解決一類問題的方案。比如要建一套房子是不是要有一套解決方案,那是不是要把該方案分解成幾個小專案,如設計,裝修,水電安裝,材料運輸等專案 c 和.net net 是一種平台一種技術,裡面包含著乙個非常大的 庫 可以模擬成 jvm c 是一種語言,我們可以使用c 去呼叫.n...
C 語法學習(6)
1.函式重寫 在子類中定義與父類中原型相同的函式 函式重寫只發生在父類與子類之間 過載與重寫區別 過載 同乙個作用域 子類無法過載父類函式,父類同名函式將被覆蓋 過載是在編譯期間根據引數型別和個數決定 重寫 發生於父類 子類之間 父類和子類函式有相同的函式原型 使用virtual關鍵字宣告後能夠產生...