對於 C# 3.0 中的另一種擴充文法就是 Extension Method ,
這個顧名思義,便是用來擴充的,擴充也就是對現有類型加入自訂的方法,
所以名字就是 Extension Method 了,
事實上呢,這種文法的使用還是蠻簡單的,等下看一個執行個體便一清二楚了,
不過還是要注意幾個地方,那就是在 Extension Method 中 this 的使用,
以及要定義為 Static 的方法,
還是先看一個 Demo 吧,
用來定義擴充的類的代碼吧
using System;
namespace ExtensionString
{
//這個類聲明為靜態呢,作用就是在此命名空間下
//不需用建立該類的執行個體,便可以使用這個類
public static class Demo__2__Use__ExtensionString
{
//而這裡定義 Extension Method 為靜態則是
//表示這個方法可以直接使用類名訪問,
//而無需在建立執行個體對象來訪問
//特別要注意的是參數中的 this
//這個 this 代表將針對當前的 string 類型進行擴充
public static string HelloName(this string firstName)
{
firstName = String.Format("Hello,{0},Welcome", firstName);
return firstName;
}
}
}
既然將擴充完成了,那麼便可以使用這個擴充了,
由於是對 string 類型進行的擴充,所以當然只能對 string 類型進行使用了
using System;
using ExtensionString;
namespace CSharpLanguage
{
public partial class Demo__2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string name = "XiaoZhen";
//使用擴充中的 HelloName 方法
//由於這個擴充被定義為了靜態,所以也就可以直接使用
string extensionName = name.HelloName();
Response.Write(extensionName);
}
}
}
然後,結果就可想而知了
以上就是對於3.0 中新文法 Extension Method 的一個使用了
2010—1—01