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中的第二個參數加入想要傳入的參數型態以及名稱
原來第一個參數的內容會是"執行個體"的內容。


留言