簡介
擴充方法能將方法「加入」至現有型別,但不需要建立新的衍生型別 (Derived Type)、重新編譯,或是修改原始型別。
神奇的是,不僅是自訂的型別可以增加 extension method,連既有的型別都可以增加 extension method !
隨便舉個例,假設要檢查字串是否為數字,以前都是另外寫個 function 來檢查,例如:
public bool IsNumeric(string strVal);
現在若是透過 extension method,只要透過以下方式即可:
strVal.IsNumeric();
如何? 使用起來是不是更加直覺了呢?
但,extension method 要怎麼用呢? 以下直接用範例來說明囉!
使用範例
為 string 型態增加 extension method:
為自訂的 ProcessData 集合型態增加 extension method:
[2011/06/03 Update]
今天發現 Extension Method 無法使用在 static class 上面,因為這個機制是作用在類別所產生的物件上。
參考資料
何謂擴充方法 (Extension method )? - Windows Live
C# 3.0 初體驗:Extension Method
沒有留言:
張貼留言