您的位置:首页 > 其它

Lambda“表达式”

2018-04-02 15:40 162 查看

Lambda“表达式”

“Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式树类型。

   Lambda 表达式是一种可用于创建 委托 或 表达式目录树 类型的 匿名函数 。 通过使用 lambda 表达式,可以写入可作为参数 传递或作为函数调用值返回的本地函数。 Lambda 表达式对于编写 LINQ 查询表达式特别有用。

如题C#中() =>是什么意思,比如
public ICommand AddCommand
{
get
{
if (this.addCommand == null)
this.addCommand = new RelayCommand(() => this.AddPerson(), () => this.CanAddPerson());

return this.addCommand;
}
}



=>是兰姆达表达式

g => g.Update(location) 的意思是一个函数,把这个函数按照传统方法展开是这个样子

void Func(GeoService g)
{
g.Update(location);
}

_geoServices.ForEach(g => g.Update(location)); 完全展开是这个样子

foreach(GeoService g in _geoServices)
{
g.Update(location);
}

ForEach是一个IEnumable的扩展方法,定义在其他地方,你没有列出来

兰姆达是.net 3.5的新语法RelayCommand(参数一, 参数二);
参数一 :() => this.AddPerson()
参数二 :() => this.CanAddPerson()

() => this.AddPerson() 的意思是 一个没有参数的方法,返回 this.AddPerson() 而这个返回值的类型不用指定 系统会自动判断
同理 () => this.CanAddPerson() 就是 一个没有参数的方法返回this.CanAddPerson()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Lambda“表达式”