asp.net中CSharpThinking扩展方法分析 |
本文实例讲述了asp.net中CSharpThinking扩展方法 。分享给大家供大家参考 。具体分析如下: 一、演变 ① 扩展方法特征 1)必须在一个静态方法中 。 ② 扩展方法与普通静态方法的比较 C#2 时对一个类进行扩展而又不能应用继承方式时,只能编写稍微“丑陋”的静态方法 。C#3允许我们更改静态类,来假装方法是类与生俱来的 。 复制代码 代码如下: public static void Demo1()
{ // C#2 普通调用方式 string Log2 = ExtensionCompare.GetLogError("C#2 普通静态方式"); Console.WriteLine(Log2); // C#3 扩展方法调用方式 Console.ReadLine(); 二、扩展方法最大的用途是在Linq中使用 。 ① Where , Select , OrderBy, 注:排序不会改变原序列的顺序及类型,返回一个新序列,这与List.Sort不同,后者会改变序列 。所以Linq是无副作用的,除了一些及其的特殊情况 。 复制代码 代码如下: company.Department.Select (dept => new { Name = dept.name, Cost = dept.Employees.Sum(person=>person.Salary); }) .OrderByDescending(x=>x.Cost); ② 扩展方法更注重结果而非过程理解,这是与静态方法的区别 。 希望本文所述对大家的asp.net程序设计有所帮助 。 |