Van Pan

导航

2009年1月7日 #

从C# 3.0说以人为本(四)—— Lambda表达式

摘要: 重新回到那个用了很多次的语句: IEnumerablenumQuery=numbers.Where((number)=>number%2==0); 我们知道了Where是扩展方法,但是后面的(number) => number % 2 == 0又是什么?功能一看就明白了,就是选择是偶数的数字,但是深层机理又是什么样子的? 查一下MSDN,原来这种表达式也是3.0新增的东东,叫Lambda表达式。它的语法小凡就不再介绍,MSDN中有很详细的说明,再说也是狗尾续貂。但是,除了用Lambda表达式,像这样的函数还能传入什么形参?是不是只能用Lambda表达式了呢? 答案当然是不会的,如果 阅读全文

posted @ 2009-01-07 23:12 Van Pan 阅读(189) 评论(0) 推荐(0) 编辑

从C# 3.0说以人为本(三)—— 扩展方法

摘要: 说完了LINQ的语言支持和语法灵活,下面就是一个非常有用的东东——扩展方法(Extension Method)。还记得我们看了好几遍的LINQ吧,下面这个:varnumQuery=fromnuminnumberswhere(num%2)==0selectnum;第一次讨论的时候我们讲到它等同于:IEnumerablenumQuery=numbers.Where((number)=>number%2==0);如果用2.0很熟悉的朋友,会知道Where函数是3.0新增的,同时新增的还有Sum,Count等一系列方法,在MSDN 2008中,我们可以看到这些函数归属于IEnumerable泛型 阅读全文

posted @ 2009-01-07 23:09 Van Pan 阅读(144) 评论(0) 推荐(0) 编辑

从C# 3.0说以人为本(二)—— LINQ语法结构

摘要: 接着上一次的程序我们继续分析探讨,LINQ语句如下:varnumQuery=fromnuminnumberswhere(num%2)==0selectnum;小凡第一次看到这个语句时,第一个念头是:为什么select要放在最后?事实上,写惯了SQL,大家都觉得SELECT放在前面才是最舒服的。问题是:为什么SELECT一定要放在前面?因为SQL放在前面吗?SELECT放在前面一定方便吗?让我们回忆一下写SQL语句时的尴尬,我想大多数人都是和小凡这样的。我们设想下面一种写SQL的情况,有5张表要做互相连接,并且5张表每个表中要取3个字段,那我们的FROM肯定是洋洋洒洒的:FROM TABLE_A 阅读全文

posted @ 2009-01-07 23:05 Van Pan 阅读(156) 评论(0) 推荐(0) 编辑

从C# 3.0说以人为本(一)—— 编译器的支持

摘要: “科技,以人为本”,这句话是不是NOKIA自创的小凡不得而知,不过,在这方面做的最好的微软实在是要在里面占上一个很有力的位置。且不说微软的操作系统进步有目共睹(当然也有如VISTA一般敢于吃螃蟹却因为华而不实遭到放弃的实例),事实上,在.NET项目中,对于C#语言和一些编程风格上的改进的确让小凡觉得处处都是为人着想。说到.NET 3.0,最大的变化当属LINQ和Lambda表达式,我们先从LINQ入手,看看为了实现LINQ的功能,分析微软做了多少工作。一,MSDN的示例classIntroToLINQ{staticvoidMain(){//TheThreePartsofaLINQQuery: 阅读全文

posted @ 2009-01-07 22:57 Van Pan 阅读(163) 评论(0) 推荐(0) 编辑