.Net 扩展方法

概要:

   我相信很多人像我一样,都在有意无意使用着"扩展方法"这个技术,但基本都不用自己手动写个扩展方法来进行开发,在这里我自己做一下"扩展方法"的总结以及简单小应用.

正文:

1.概念性的东西:

  首先,扩展方法本质就是静态方法,编译后,其实就是通过静态类调用静态方法实现的.可以跟实例方法构成重载,但是优先调用实例方法.并且,在父类上定义的扩展方法可以在子类使用.

2.实际代码:

    /// <summary>
    /// 此方法的第一个参数必须以this开头,并且指定此方法是扩展自哪个类型上的
    /// </summary>
   public static  class myExpandClass
    {
       public static string myExpandFunc(this int InputParam)
       {
           return "InputParam:" + InputParam.ToString();
       }
    }

       static void Main(string[] args)
        {
            int intput = 19;
            string returnValue=intput.myExpandFunc();
            Console.WriteLine(returnValue);
        }

   结果:InputParam:19

这样,就完成了一个在Int类型下的扩展方法myExpandFunc();

3.扩展内容:

从图中可以看到,返回值为string,扩展在int类型上,那么可以想象到根据返回值的不同,又要写一堆不同扩展方法,根据不同的扩展类型又要分别写一堆不同的扩展方法,着很明显是不合理的.但微软提供了很好的解决方法的演示:
由上图可以看出,一套扩展在IEnumerable<T>泛型接口的扩展方法,现在应该知道上面提出问题的解决方案了.
 
 
posted on 2015-09-02 11:45  巴夫巴夫  阅读(225)  评论(0)    收藏  举报