现在的位置: 首页 > 综合 > 正文

扩展方法(C# 编程指南)

2012年06月10日 ⁄ 综合 ⁄ 共 1124字 ⁄ 字号 评论关闭

 

 

 

 

扩展方法(C# 编程指南

 

扩展方法使您能够向现有类型添加方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。对于用 C# Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异。

最常见的扩展方法是 LINQ 标准查询运算符,这些运算符在现有 System.CollectionsIEnumerable  System.Collections.GenericIEnumerableT 类型中添加了查询功能。若要使用这些标准查询运算符,请先使用using System.Linq指令将它们纳入范围中。 然后,任何实现了 IEnumerableT 的类型看起来都具有 GroupBy  OrderBy  Average 等实例方法。  IEnumerableT 类型的实例(如 ListT  Array )后键入dot时,可以在 IntelliSense 语句完成中看到这些附加方法。

下面的示例演示如何对一个整数数组调用标准查询运算符 OrderBy 方法。 括号里面的表达式是一个 lambda 表达式。 很多标准查询运算符采用 lambda 表达式作为参数,但这不是扩展方法的必要条件。 有关更多信息,请参见 Lambda 表达式(C# 编程指南) 

1.   

2.  class ExtensionMethods2    

3.  {

4.   

5.      static void Main()

6.      {            

7.          int[] ints = { 104515392126 };

8.          var result = ints.OrderBy(g => g);

9.          foreach (var i in result)

10.               {

11.                   System.Console.Write(i + " ");

12.               }           

13.           }        

14.       }

15.       //Output: 10 15 21 26 39 45

16.        

 

扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 仅当您使用 using 指令将命名空间显式导入到源代码中之后,扩展方法才位于范围中。

下面的示例演示为 SystemString 

抱歉!评论已关闭.