關鍵字 this和base

來源:互聯網
上載者:User

this 和base被歸於訪問關鍵字,是用於實現繼承機制的訪問操作。

this  用於引用類的當前執行個體,也可以引用繼承來的方法

this的主要功能:

•限定被相似的名稱隱藏的成員
•將對象作為參數傳遞到其他方法
•聲明索引器
•this 指代類對象本身,用於訪問本類的所有常量,欄位,屬性和方法的成員。
•this僅僅局限於對象內部,對象外部時無法看到的,這是this的基本思想
  * 在類的建構函式中出現的this作為一個實值型別,它表示對正在構造的對象本身的引用

  * 在類的方法中出現的this作為一個實值型別,表示對調用該方法的對象的引用

  * 在結構的建構函式中出現的this作為一個變數類型,表示對正在構造的結構的引用

  * 在結構的方法中出現this作為一個變數類型,表示對調用該方法的結構的引用

base  用於從衍生類別中訪問基類中的公有或受保護的成員,但只局限在建構函式、執行個體方法和執行個體屬性訪問器中。

base的主要功能:

•調用基類上已被其他方法重寫的方法。
•指定建立衍生類別執行個體時應調用的基類建構函式
•base常用於在衍生類別對象初始化時和基類通訊
•base可以訪問積累的公有成員和受保護的成員,私人成員不可以訪問
•在多層繼承中,base可以指向父類的方法有兩種:
•一是有重載存在的情況下,base將指向直接繼承的父類的方法
•在沒有重載的情況下,base可以指向任何上級父類的公有或者受保護方法。

通用規則

•盡量少用或者不用this和base
•在靜態成員中使用base和this都是不允許的,因為base和this訪問的都是類的執行個體,也就是對象,而靜態成員只能由類來訪問,不能由對象來訪問。
•base是為了實現多態而設計的
•使用this或base關鍵字只能指定一個建構函式,不能同時將base和this作用在同一個函數上
•base用於在衍生類別中訪問重寫的基類成員,而this用於訪問本類的成員,當然也包括繼承而來的公有或受保護的成員
•除了base,訪問基類成員的另外一種方式是:顯示的類型轉換來實現,只是這個方法不能為靜態方法。

 

msdn參考

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.