匿名方法和λ表达式
来源:互联网 发布:centos 查看网络流量 编辑:程序博客网 时间:2024/06/05 21:58
匿名方法:
在给委托类型添加事件委托时,除了定义事件处理方法之外,还可以使用匿名方法。匿名方法实际上是传统意义上不存在的方法,不是某个类上的方法,而纯粹是为用作委托目的而创建的。
匿名方法的定义语法:
delegate(parameters)
{ //Anonymous method code.
};
例如
public static void WriteChar(object source, ElapsedEventArgs e)
{
Console.WriteLine("Event handler called after {0} milliseconds.", (source as Timer).Interval);
}
Timer myTimer = new Timer(100);
myTimer.Elapsed += new ElapsedEventHandler(WriteChar);
用匿名方法可以改写为:
Timer myTimer = new Timer(100);
myTimer.Elapsed += delegate(object source, ElapsedEventArgs e)
{
Console.WriteLine("Event handler called after {0} milliseconds.", (source as Timer).Interval);
};
λ表达式是简化匿名方法的语法的一种方式。上面的代码用λ表达式重写为:
Timer myTimer = new Timer(100);
myTimer.Elapsed += (source, e) => Console.WriteLine("Event handler called after {0} milliseconds.", (source as Timer).Interval);
λ表达式分为3个部分:
1)参数定义部分
参数可以是类型化的,如(int paramA, int paramB)
也可以是未类型化的,如(paramA, paramB),编译器根据上下文推断出参数类型。
但是同一个表达式的参数列表不能同时使用显示和隐式的参数类型
2) => 运算符: 把λ表达式的参数和表达式体分开
3) 表达式体:可以包含一个简单操作,如(int paramA, int paramB) => paramA + paramB
也可以包含多个语句,放在花括号中(int paramA, int paramB) => { //multiple statements }
可以是void型,如上面的(source, e) => Console.WriteLine("Event handler called after {0} milliseconds.", (source as Timer).Interval)
也可以有return返回值,如(int paramA, int paramB) => { return paramA + paramB;}
- 匿名方法和λ表达式
- 匿名方法和Lambda表达式
- 匿名方法和Lambda表达式
- 匿名方法和lambda表达式
- 委托,匿名方法,λ 表达式
- C# 匿名方法和拉姆达表达式
- C# 匿名方法和拉姆达表达式
- C# 匿名方法和Lambda表达式
- 委托和匿名方法、lambda表达式
- C# 匿名方法和拉姆达表达式
- C# 匿名方法和拉姆达表达式
- C# 匿名方法和拉姆达表达式
- C# 匿名方法和拉姆达表达式
- C#匿名方法和Lambda表达式
- 委托中的匿名方法和lambda表达式
- C# 匿名方法和Lambda表达式
- 匿名方法、Lambda表达式和事件
- 匿名方法、Lambda表达式
- QT样式表编写参考文档
- Puppet的fileserver注意事项
- 对 Linux 新手非常有用的20个命令
- ActionBar tab + Fragment
- CentOS上Git服务器的架设
- 匿名方法和λ表达式
- XMPP客户端关于用户组和好友列表的管理的一个实现方法
- GetBuffer与ReleaseBuffer的用法,CString剖析
- static_cast、dynamic_cast、reinterpret_cast和const_cast之间的区别
- MCS-51单片机的存储器组织结构
- 显示EAS标准单据自带kdtable(kdtEntry) 右键导出 excel菜单
- 关于Ubuntu的ip设置
- 字典序最小问题Best Cow Line
- nginx+uwsgi+django+linux搭建