Extension Method in C#
在.Net中,有許許多多的類別可供使用,那如果想要在已有的類別上去新增自己做的Function,應該要怎麼做呢?
這個時候我們可以撰寫擴充現有類別的程式碼,例如想要幫string來新增自訂的方法,可以加入以下的類別
要注意的地方是
原來第一個參數的內容會是"執行個體"的內容。
這個時候我們可以撰寫擴充現有類別的程式碼,例如想要幫string來新增自訂的方法,可以加入以下的類別
namespace StringExtension { public static class Extension { public static string ShowMachineName(this string str) { return Environment.MachineName; } public static string AddMessage(this string str, string msg) { return "Hello : " + msg; } } }要特別注意的地方在下圖紅色框框的地方
要注意的地方是
- 自行撰寫的類別比需是public static的
- 類別中的function必須是public static類型
- function的第一個傳入參數必須要加上this的關鍵字,而隨後跟著的是要擴充的類別名稱
- 需要傳入參數的話,則在function中的第二個參數加入想要傳入的參數型態以及名稱
原來第一個參數的內容會是"執行個體"的內容。
留言