【C#】=>符号的使用
2024-09-04 18:18:37
Lambda表达式。
Lambda表达式是C#3.0的新内容,如果您之前学习的C#2.0,不认识也就不奇怪了。
给您举个例子。
例如,我定义一个委托:
delegate int Method(int a, int b);
再定义一个方法:
int Add(int a, int b)
{
return a + b;
}
我可能需要这样通过委托调用方法:
Method m += Add;
Console.WriteLine(m(2, 3));
====================================================
但如果用 Lambda 表达式:
Method m += (a ,b) => a + b;
Console.WriteLine(m(2, 3));
可以省去方法的定义。
实际上, Lambda 表达式只是简化了匿名方法的语法而已。
Lambda表达式是C#3.0的新内容,如果您之前学习的C#2.0,不认识也就不奇怪了。
给您举个例子。
例如,我定义一个委托:
delegate int Method(int a, int b);
再定义一个方法:
int Add(int a, int b)
{
return a + b;
}
我可能需要这样通过委托调用方法:
Method m += Add;
Console.WriteLine(m(2, 3));
====================================================
但如果用 Lambda 表达式:
Method m += (a ,b) => a + b;
Console.WriteLine(m(2, 3));
可以省去方法的定义。
实际上, Lambda 表达式只是简化了匿名方法的语法而已。
附 C# 2.0 的匿名方法语法:
Method m += delegate(int a, int b) { return a + b; };
Console.WriteLine(m(2, 3));
*******************************************************************************
C#中 += (s, e) => 这些字符什么意思
public MainWindow()
{
InitializeComponent();
this.Loaded += (s, e) => DiscoverKinectSensor();
this.Unloaded += (s, e) => this.kinect = null;
}
{
InitializeComponent();
this.Loaded += (s, e) => DiscoverKinectSensor();
this.Unloaded += (s, e) => this.kinect = null;
}
在上面的代码中,+=是在委托链上增加一个委托,(s,e) =>是一个lambda表达式,这个表达式创建一个委托,委托处理的主体就是=> 后面的部分。
其实这个写法相当于
this.Loaded += new EventHandler(Form_Loaded);
private void Form_Loaded(object sender, EventArgs e) {
DiscoverKinectSensor();
}
最新文章
- mkdir,rmdir,cp,rm,mv,cat,touch用法
- Haskell List相关操作
- JavaScript侧边悬浮框
- PyCharm 教程(五)断点 调试
- 使用PPT绘制96孔板
- struts2中错误处理
- android106 C基本数据类型
- sharepoint2013 新建母板页 新建页面布局 关联母板页和页面布局
- 关于Hibemate
- C++空类中的默认函数
- NSURLSessionUploadTask 上传
- grep -v grep 代表在查询的最终结果中去掉grep命令本身
- ado vb6
- CSS 基础
- PHP 是一门弱类型语言
- [dart学习]第四篇:函数和操作符(本篇未完待续)
- wpf 状态栏图标背景闪烁提醒 FlashWindowEx
- 30.深入理解abstract class和interface
- laravel 安装步骤
- ANSYS渡槽槽身动水压力的施加(2)——U型渡槽