C#3.0新特性之擴展方法
不講什么廢話了,來點干的,首先您看下這個類的定義和實現(xiàn):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ExFunctions
{
public static class TestClass
{
public static string SayHello(this string userName)
{
return string.Format("Hello,{0}", userName);
}
}
}
這是我在vs2008里面創(chuàng)建的一個類,這個ide可以選擇.net framework版本,我選擇的是3.5,上面這個類在.net framework 2.0中是一個另類,這種寫法是C#3.0中的新特性,稱之為“擴展方法",在一個非范型的靜態(tài)類里面,我們通過聲明一個帶this參數的靜態(tài)方法來實現(xiàn)擴展函數,擴展函數能夠在參數類型的實例對象中添加方法,比如上面的函數,我就為string類型的對象添加了一個名為SayHello的函數,在使用的過程中,很是方便,使用代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ExFunctions
{
class Program
{
static void Main(string[] args)
{
string userName = "jillzhang";
string welcomeString = userName.SayHello();
Console.WriteLine(welcomeString);
Console.Read();
}
}
}
再看看這幅圖,感覺3.0這個功能還是蠻有意義的,平時我們經常為了擴展一些類的行為,而繼承類,出于不同目的,我們會產生一些子類,而這些子類在使用的時候,我們時刻要關注其類型,通過擴展方法,我們可以輕松的更改原類,為原類添磚加瓦,使用的時候,也不必考慮類型轉換了,效率會因此提高一些,由此可見,MS的人性化作的真是非常到位了。

您還可以象使用靜態(tài)函數一樣使用擴展函數,如:
string welcomeString = TestClass.SayHello(userName);
所以,在我看來這個特征還是蠻貼心的。
jillzhang jillzhang@126.com
出處:http://jillzhang.cnblogs.com/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

浙公網安備 33010602011771號