码迷,mamicode.com
首页 > Web开发 > 详细

个人总结:.Net扩展方法

时间:2015-09-02 11:56:37      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

                                                                            .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>泛型接口的扩展方法,现在应该知道上面提出问题的解决方案了.
 
 

个人总结:.Net扩展方法

标签:

原文地址:http://www.cnblogs.com/Francis-YZR/p/4778157.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!