Mar*_*ell 11
代表充当函数指针的逻辑(但安全)等价物; 它们允许您以抽象的方式讨论操作.典型的例子是事件,但我将使用更多"函数式编程"示例:在列表中搜索:
List<Person> people = ...
Person fred = people.Find( x => x.Name == "Fred");
Console.WriteLine(fred.Id);
Run Code Online (Sandbox Code Playgroud)
这里的"lambda"本质上是一个委托的实例 - 一个类型的委托Predicate<Person>- 即"给定一个人,是真是假".使用委托允许非常灵活的代码 - 即该List<T>.Find方法可以根据调用者传入的委托找到各种各样的东西.
通过这种方式,它们在很大程度上像一个方法界面 - 但更简洁.