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()