釋義:擴展方法使您能夠向現有類型“添加”方法,而無需創建新的派生類型、重新編譯或以其他方式修改原始類型。擴展方法是一種特殊的靜態方法,但可以像擴展類型上的實例方法一樣進行調用。
區別:對於用 C# 和 Visual Basic 編寫的客戶端代碼,調用擴展方法與調用在類型中實際定義的方法之間沒有明顯的差異。
使用方式:擴展方法被定義爲靜態方法,但它們是通過實例方法語法進行調用的。它們的第一個參數指定該方法作用於哪個類型,並且該參數以 this 修飾符爲前綴。僅當您使用 using 指令將命名空間顯式導入到源代碼中之後,擴展方法才位於範圍中。
例子:
下面的示例演示爲 System.String 類定義的一個擴展方法。請注意,它是在非嵌套、非泛型靜態類內部定義的:
namespace ExtensionMethods
{
public static class MyExtensions
{
public static int WordCount(this String
str)
{
return str.Split(new char[] { '
', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
}
可使用以下 using 指令將 WordCount 擴展方法放入範圍中:
using ExtensionMethods;
而且,可以在應用程序中使用以下語法對該擴展方法進行調用:
string s = "Hello Extension Methods";
int i = s.WordCount();