VS2008&C#3.5語言特色系列[視頻]:擴展方法(Extension Methods)

 
擴展方法的作用:當你對某個類型想附加新的功能(方法),但是你不能得到或者無法去修改原類型的源碼的時候。使用擴展方法的時候,並沒有對原有的類型產生任何的影響,僅僅是在當前應用程序中對其擴展了功能。
擴展方法必須是靜態的,所以必須在靜態類中去定義
擴展方法必須使用this關鍵字修飾參數,this代表其所修飾的類型被擴展了功能,附加上了相應的擴展方法。
擴展方法的參數可以有多個,但是隻有第一個參數需要用this關鍵字修飾。
擴展方法可以有多個重載。
使用擴展方法可以對接口進行擴展
通過使用ILDASM進行分析,發現擴展方法在本質上還是調用了靜態類的靜態方法,然後將類型作爲參數傳入,具體請參看視頻的演示
擴展方法實際是編譯器調用某個類的某個方法的時候,先去這個類找,如果有這個方法,則就調用;如果找不到,根據引用的命名空間,再去找擴展方法(靜態類的靜態方法)。找到,就使用,找不到當然就編譯錯誤了。
擴展方法跟類的方法衝突時候,編譯使用不會報任何錯誤,這時候以類的方法優先級最高,這時我們使用類的方法,而不是擴展方法。
下面是方法的從高到低的優先級:
  1. 實例方法
  2. 在同一個命名空間裏的擴展方法
3. 在當前命名空間之外的擴展方法
和繼承不同的是,擴展方法只允許添加,不允許改變
 
視頻下載:

VS2008&C#3.5語言特色系列:擴展方法(共2部分,第1部分) 
http://download.csdn.net/source/422396

VS2008&C#3.5語言特色系列:擴展方法(共2部分,第2部分)

http://download.csdn.net/source/423077

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章