NeGe 网格计算试验网络
提供下一代互联网——网格计算专业服务,提高资源利用率,改变计算方式,让一切变得简单,想要桌面超级计算机吗?联系我们吧 我的20年计划——“让超级计算能力无处不在”
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
posts - 85, comments - 241, trackbacks - 24
公告
<
2006年6月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
我参与的团队
成都.NET俱乐部(0/0)
开源项目团队(0/0)
.NetFramework3.0 & 3.5(WCF,WPF,WF)团队(0/0)
我的标签
腾讯
(1)
招聘
(1)
VC
(1)
客户端
(1)
职位
(1)
应聘
(1)
QQ
(1)
随笔档案
(85)
2008年3月 (1)
2006年8月 (1)
2006年7月 (13)
2006年6月 (19)
2006年5月 (16)
2006年4月 (9)
2006年3月 (26)
文章分类
NGN 开发相关
相册
个人照片
我的大学
最新随笔
1. 招聘Windows环境下客户端VC贤者,从事QQ Client端程序开发工作【借首页人气】
2. Google Trends(Google趋势)服务商业价值初探
3. NGNGrid网格计算试验网络项目正式开始
4. NGNGrid常见问题解答_开发者社区问题
5. NGNGrid常见问题解答_安全问题
6. NGNGrid常见问题解答_技术问题
7. NGNGrid常见问题解答_帐单和支付问题
8. NGNGrid常见问题解答_一般问题
9. NGNGrid网格计算服务开发计划概要
10. NGNGrid网格计算服务初步使用指南
11. NGNGrid网格计算服务的亮点
12. NGNGrid网格的关键优势
13. 网格计算适合您和您的公司吗?
14. NGNGrid的事业由此拉开序幕
15. [ZT]7.13前夕百度突施大裁员?
16. Internet Explorer 7 Beta 3 放出!
17. Pre-Release Build Available for Windows Server 2003 Service Pack 2!
18. Coming Soon! Windows Server 2003 Service Pack 2 Beta!
19. WinFX开发手记 Part1 WinFX概述
20. C# 4.0语言将出现重大改变?!带来一段Code Preview
21. C# 3.0 新特性初步研究
22. C# 3.0新特性初步研究 Part6:使用查询表达式
23. C# 3.0新特性初步研究 Part5:匿名类型
24. C# 3.0新特性初步研究 Part4:使用集合类型初始化器
25. C# 3.0新特性初步研究 Part3:使用拉姆达表达式
最新评论
1. re: C# 3.0新特性初步研究 Part6:使用查询表达式
C#的编译器在后台默默做了很多事,
当然编译器的作用就是为了让计算机代替人类做更多的事!
--heguo
2. re: C# 4.0语言将出现重大改变?!带来一段Code Preview
c# 4.0 将在动态性,并行,命名参数等方向加强.
不如把这个转载删了吧,免得误导初学者.
--heguo
3. re: 麒麟官方承认非独立研发 采用FreeBSD代码
中国可怜的纳税人
--anti
4. re: C# 3.0新特性初步研究 Part6:使用查询表达式
拜读,拜读,非常不错,另外,我估计是c#梦见了SQL
--.NETLiu
5. re: C# 4.0语言将出现重大改变?!带来一段Code Preview
瞎扯
好好看看原文怎么说的
断章取义
英文没学好就瞎写东西
--哎
阅读排行榜
1. C# 4.0语言将出现重大改变?!带来一段Code Preview(5022)
2. Windows Vista Beta2今日正式公开下载(1683)
3. NGNGrid网格计算试验网络项目正式开始(1519)
4. Google Trends(Google趋势)服务商业价值初探(1396)
5. C# 3.0 新特性初步研究(1387)
评论排行榜
1. C# 4.0语言将出现重大改变?!带来一段Code Preview(62)
2. NGNGrid网格计算试验网络项目正式开始(21)
3. 对于《关于信息化的全球进程的思考》的回复(17)
4. 招聘Windows环境下客户端VC贤者,从事QQ Client端程序开发工作【借首页人气】(12)
5. Google Trends(Google趋势)服务商业价值初探(11)
C# 3.0新特性初步研究 Part3:使用拉姆达表达式
拉姆达表达式(Lambda Expression)
可以算是一种匿名方法的实现吧。
在C# 2.0中引入了匿名方法的概念,我们可以写下如下代码:
1
class
Program
2
{
3
static
void
TestLambdaExpression()
4
{
5
List
<
int
>
list
=
new
List
<
int
>
();
6
7
list.Add(
1
);
8
list.Add(
2
);
9
list.Add(
3
);
10
list.Add(
4
);
11
12
List
<
int
>
evenNumbers
=
list.FindAll(
delegate
(
int
i)
{
return
(i
%
2
)
==
0
; }
);
13
14
foreach
(
int
evenNumber
in
evenNumbers)
15
{
16
Console.WriteLine(evenNumber);
17
}
18
}
19
}
20
21
static
void
Main(
string
[] args)
22
{
23
TestLambdaExpression();
24
}
25
匿名方法避免了一些“极小函数”的出现,适当使用可以提高代码的可阅读性,显得清爽一点。
(List的FindAll方法需要一个Delegate参数,所以我们可以这样谢哈)
在C# 3.0中,我们可以这样写:
1
static
void
TestLambdaExpression()
2
{
3
var list
=
new
List
<
int
>
();
4
5
list.Add(
1
);
6
list.Add(
2
);
7
list.Add(
3
);
8
list.Add(
4
);
9
10
var evenNumbers
=
list.FindAll(i
=>
(i
%
2
)
==
0
);
11
12
foreach
(
int
evenNumber
in
evenNumbers)
13
{
14
Console.WriteLine(evenNumber);
15
}
16
}
其中i=>(i%2)==0就是我们说的Lambda Expression,在这里它就起到了原来匿名方法的作用,同时提升了代码的可阅读性。
下面是一个复杂一点的Lambda Expression的例子:
1
fruit.FilterBy((
string
name,
double
price)
=>
name
==
"
banana
"
&&
price
<
2.00
);
看了这个例子应该可以自己动手写一些东西了吧(下楼买瓶可乐去也)
这里还有一个有趣的东西:Lambda Expression Tree(拉姆达表达式树)
这是一种用来在运行时把表达式作为数据的技术,我们可在运行时灵活的控制和改变表达式,
增强程序的灵活性!
还是看代码吧,这样直接一点:
1
using
System.Expressions;
2
3
static
void
Main(
string
[] args)
4
{
5
Expression
<
Func
<
int
,
bool
>>
filter
=
n
=>
(n
*
3
)
<
5
;
6
7
BinaryExpression lt
=
(BinaryExpression) filter.Body;
8
BinaryExpression mult
=
(BinaryExpression) lt.Left;
9
ParameterExpression en
=
(ParameterExpression) mult.Left;
10
ConstantExpression three
=
(ConstantExpression) mult.Right;
11
ConstantExpression five
=
(ConstantExpression) lt.Right;
12
13
Console.WriteLine(
"
({0} ({1} {2} {3}) {4})
"
, lt.NodeType,
14
mult.NodeType, en.Name, three.Value, five.Value);
15
}
输出:
(LT (Multiply n 3) 5)
通过这种技术,我们对于数据和数据表达式的操作可以变得更加轻松,不用动不动就是写方法了。
posted on 2006-06-10 19:43
NGNGrid
阅读(768)
评论(3)
编辑
收藏
网摘
Feedback
#1楼
2006-06-10 20:39 |
neoragex2002
Sometime to be handy is to be ugly.
回复
引用
查看
#2楼
[
楼主
]
2006-06-10 20:42 |
zc1984
@neoragex2002
严重同意,所以需要经验和理论来指导我们什么东西是在特定情况下“合适的”。为了技术而技术是最没有“前途”的了~~
呵呵
回复
引用
查看
刷新评论列表
切换模板
发表评论
姓名
[登录]
[注册]
主页
Email
(仅博主可见)
验证码
*
看不清,换一张
内容(请不要发表任何与政治相关的内容)
今天你闪了吗?
《C# 3.0设计模式》65折特惠
Remember Me?
登录
使用高级评论
新用户注册
返回页首
[使用Ctrl+Enter键可以直接提交]
导航:
网站首页
社区
新闻
博问
闪存
网摘
招聘
.NET频道
知识库
找找看
Google站内搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关文章:
相关链接:
最新IT新闻:
Google App Engine宕机6小时——云的安全在哪里?
微软新推社交网站Windows Live Planet
火狐3.5版被指推出太匆忙:存在50多个漏洞
Google对手机搜索进行优化升级
风声又起 Windows 7 RTM版7月13日完成