微软在.NET 3.5中加入了LINQ技术,作为配套改进了C#语言,加入了Lambda表达式,扩展方法,匿名类型等新特性用以支持LINQ。微软同时提出了要使用声明式编程,即描述计算规则,而不是描述计算过程。使用LINQ技术能很好地做到声明式编程,写出的代码表意能力强,可读性高,避免了以往或其他语言的...
分类:
其他好文 时间:
2014-12-27 15:08:30
阅读次数:
181
简介 在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆。我想下面的代码能证实这点。下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=5.答案是6个First不仅被编译,并都获得正确答案,且他们的结果一样。如果你对此感到困惑,那么请继续看这篇文章。12....
我们今天学习的内容其实还是蛮多的,学习了自动属性,扩展方法,复习初始化器,以及LinQ的一些方法,其实感觉有些还是很熟悉的,在前面的学习过程中有时间感觉学习的知识知道了怎么使用,但是还没有在项目中使用,做的习题似乎意义不大,现在依旧如此,感觉仅限于知道怎样使用。很想做一个小小的项目来...
分类:
其他好文 时间:
2014-12-27 01:31:08
阅读次数:
135
category与associative作为objective-c的扩展机制的两个特性,category即类型,可以通过它来扩展方法;associative,可以通过它来扩展属性;在iOS开发中,可能category比较常见,相对的associative,就用的比较少,要用它必须使用的头文件,然后就...
分类:
其他好文 时间:
2014-12-26 10:59:45
阅读次数:
208
OC提供了一种可以在不修改类的源码基础上,扩展类的方法的功能,"分类"Category,这个机制和C#中的扩展方法类似,一般用于在不方便修改类的源码时(如OC系统相关的类库),但有有需求要拓展类的方法,可以使用分类来实现。
Java中应该是没有提供相关的机制,但是Java可以通过动态代理来实现AOP,在切入点前后执行代码逻辑,个人认为比OC还要方便。
//
// Girl.h
// 10_...
分类:
其他好文 时间:
2014-12-23 19:37:51
阅读次数:
163
(一)输入参数
在Lambda表达式中,输入参数是Lambda运算符的左边部分。它包含参数的数量可以为0、1或者多个。只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略。输入参数的数量大于或者等于2时,Lambda表达式左边的一对小括弧中的多个参数质检使用逗号(,)分割。
示例1
下面创建一个Lambda表达式,它的输入参数的数量为0.该表达式将显示“This is a La...
分类:
其他好文 时间:
2014-12-23 15:40:12
阅读次数:
244
.NET(C#): Task.Unwrap扩展方法和async Lambda目录Task.Unwrap基本使用Task.Factory.StartNew和Task.Run的Unwrap操作使用案例:LINQ中的async Lambda返回目录Task.Unwrap基本使用这个扩展方法定义在TaskE...
一、定义lambda arg1,arg2... : returnValue二、示例#!/usr/bin/pythondef f(x,y): return x*yprint f(2,3)#6g = lambda x,y:x*yprint g(2,3)#6三、switch的一种实现方案#!/usr...
分类:
编程语言 时间:
2014-12-23 12:01:34
阅读次数:
188
前面介绍了仓储的基本操作,下面准备开始扩展查询,在扩展查询之前,首先要增加两个公共操作类,一个是经常要用到的验证方法,另一个是Lambda表达式的操作类。 很多时候,我们会判断一个对象是否为null,由于null是一个不能接受的值,它会导致“未将对象引用设置到对象的实例”的严重错误,所以当检测...
分类:
其他好文 时间:
2014-12-23 01:27:57
阅读次数:
221
为了更好的迎接新版本的到来,先看一下之前F#的特性。
1.为区分联合(discriminated unions)添加了命名域,使代码更加清晰。
2.用新数据的新特性,使矢量和矩阵编码更容易的工作
3.更强大的泛型算法的扩展
4.得到更好的调试支持,当你使用F #调试时,调试编译器和解释器选项。
5.当你使用LINQ扩展方法如select时,lambda表达式将使你的代码非常简浩。
6....
分类:
其他好文 时间:
2014-12-21 09:14:20
阅读次数:
221