不讲什么废话了,来点干的,首先您看下这个类的定义和实现:`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
using System;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
using System.Collections.Generic;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
using System.Linq;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
using System.Text;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
namespace ExFunctions`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    public static class TestClass`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    {`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        public static string SayHello(this string userName)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        {`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
            return string.Format("Hello,{0}", userName);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        }`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
这是我在vs2008里面创建的一个类,这个ide可以选择.net framework版本,我选择的是3.5,上面这个类在.netframework2.0中是一个另类,这种写法是C#3.0中的新特性,称之为“扩展方法",在一个非范型的静态类里面,我们通过声明一个带this参数的静态方法来实现扩展函数,扩展函数能够在参数类型的实例对象中添加方法,比如上面的函数,我就为string类型的对象添加了一个名为SayHello的函数,在使用的过程中,很是方便,使用代码如下:`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
using System;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
using System.Collections.Generic;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
using System.Linq;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
using System.Text;`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
namespace ExFunctions`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
{`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    class Program`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    {`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        static void Main(string[] args)`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        {`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
            string userName = "jillzhang";`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
            string welcomeString = userName.SayHello();`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
            Console.WriteLine(welcomeString);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
            Console.Read();`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
        }`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
    }`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
}`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
再看看这幅图,感觉3.0这个功能还是蛮有意义的,平时我们经常为了扩展一些类的行为,而继承类,出于不同目的,我们会产生一些子类,而这些子类在使用的时候,我们时刻要关注其类型,通过扩展方法,我们可以轻松的更改原类,为原类添砖加瓦,使用的时候,也不必考虑类型转换了,效率会因此提高一些,由此可见,MS的人性化作的真是非常到位了。`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
您还可以象使用静态函数一样使用扩展函数,如: `ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
string welcomeString = TestClass.SayHello(userName);`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
所以,在我看来这个特征还是蛮贴心的。`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
jillzhang jillzhang@126.com `ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7
`ÃÚO¿ Ì6xéwww.netcsharp.cn1C“72—Ãç7