什么是扩展方法?

扩展方法顾名思义,就是允许向现有的“类型”添加方法,而无需创建派生类、重新编译或以其他方式修改原来类型。

扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。

扩展方法和实例方法有何区别?

通常只有在不得已(例如:不能修改原来的类型)的情况下才实现扩展方法,如果扩展方法和类型中定义的实例方法相同,则扩展方法不会被调用,因为实例方法的优先级高于扩展方法的优先级。。

已用到的扩展方法:

最常见的扩展方法是LINQ标准查询运算符,它将查询功能添加到现有的System.Collections.IEnumerable和System.Collection.Generic.IEnumerable<T>类型。若要使用标准查询运算符,请先使用using System.Linq指令将它们置于范围内。然后,任何实现了IEnumerable<T>的类型看起来都具有GroupBy<TSource,TKey>,Order<TSource,TKey>等实例方法。

class ExtensionMethods2    
{

    static void Main()
    {            
        int[] ints = { 10, 45, 15, 39, 21, 26 };
        var result = ints.OrderBy(g => g);
        foreach (var i in result)
        {
            System.Console.Write(i + " ");
        }           
    }        
}
//Output: 10 15 21 26 39 45

如何增加一个扩展方法? 

  一、定义一个测试类型,其中包含一个实例方法,如下:  

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Demo_ExtensionMethod2
{
    public class Test
    {
        public void InstanceMethod()
        {
            Console.WriteLine("I am a Instance Method!");
        }
    }
}
View Code

相关文章: