C#3.0新特性之扩展方法

不讲什么废话了,来点干的,首先您看下这个类的定义和实现:

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里面创建的一个类,这个ide可以选择.net framework版本,我选择的是3.5,上面这个类在.net framework 2.0中是一个另类,这种写法是C#3.0中的新特性,称之为“扩展方法",在一个非范型的静态类里面,我们通过声明一个带this参数的静态方法来实现扩展函数,扩展函数能够在参数类型的实例对象中添加方法,比如上面的函数,我就为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的人性化作的真是非常到位了。



您还可以象使用静态函数一样使用扩展函数,如:

string welcomeString = TestClass.SayHello(userName);

所以,在我看来这个特征还是蛮贴心的。

jillzhang jillzhang@126.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值