C# this、base關鍵字
this關鍵字
this關鍵字代表當前對象,通過this關鍵字可以訪問當前對象的成員。(當前對象的成員:自己本身的成員+從父類繼承過來的所有的成員。)
this關鍵字可以訪問:本類的所有成員和父類的非私有成員。父類的私有成員確實存在,但是就是訪問不到。
this關鍵字仍然代表的是對象,通過它可以點出對象中的除了父類的私有成員以外的所有成員。
this關鍵字只能用在實例方法中。
作用:
1)代表當前對象。在實例方法中使用this關鍵字就代表當前對象。通過this關鍵字可以點出本類的所有成員和父類的非私有成員。
2)調用本類的其他的構造函數。在構造函數的后面的this代表調用本類的其他的構造函數。
base關鍵字
顯示的訪問父類的非私有成員。可以訪問子類對象中的父類的非私有成員。base不代表父類對象。因為壓根就沒有父類對象。通過它可以訪問到父類的非私有成員。
通過this關鍵字訪問當前對象的成員的時候:先找子類本身有沒有這個成員,如果沒有再找是否有從父類繼承過來的。base關鍵字 直接就找父類中的成員。
我們發現,base可以點出來的成員,通過this都可以點出來訪問。
建議:如果我們訪問的確實是從父類繼承過來的,那么建議用base關鍵字訪問,這樣方便代碼的閱讀和提高效率。
只有在訪問的成員確實是子類獨有的,那么我們才用this關鍵字。
作用:
1)在實例方法中,通過base關鍵字可以顯示的訪問子類對象中的非私有的父類成員。
2)調用父類的構造函數。在子類的構造函數的后面的base代表調用父類的構造函數。