2009年6月9日 星期二

[C#] 3.0 中的新功能 - 擴充方法(Extension Method)

簡介

擴充方法能將方法「加入」至現有型別,但不需要建立新的衍生型別 (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

沒有留言:

張貼留言