C# 扩展方法:功能与应用
1. 扩展方法与函数式编程
扩展方法让我们能够更轻松地实现函数式编程风格。C# 3.0 引入的许多新特性,如扩展方法、Lambda 表达式和 LINQ,都有助于函数式编程范式的实现。这些特性更注重计算操作本身,而非计算结构。
函数式编程有诸多好处,例如它便于实现并行计算,因为变量在初始赋值后通常不会改变,这样就减少了锁和同步块的使用。熟悉 C++ 模板元编程或标准模板库(STL)的开发者,对这种编程风格会感到很熟悉。
2. 操作链
使用扩展方法,操作链变得更加自然。虽然在 C# 2.0 中也可以使用普通静态方法和匿名方法实现类似功能,但扩展方法的简洁语法消除了代码冗余,还可能激发创新思维。
下面是一个操作链的示例,我们将一个整数列表转换为双精度浮点数列表,先将每个整数除以 3,再计算结果的平方:
using System; using System.Linq; using System.Collections.Generic; public static class MyExtensions { public static IEnumerable<R> Transform<T, R>( this IEnumerable<T> input, Func<T, R> op ) { foreach( var item in input ) { yield return op( item );