【发布时间】:2012-10-14 22:23:48
【问题描述】:
我在库中使用了相当多的 lambda。真正让我恼火的一件事是我似乎无法摆脱 return 语句,而且我在它们周围有相当多的样板类型代码。
到目前为止,它是这样工作的:
public delegate IBarelyView HandlerInvoker(IDictionary<string, string> route, IDictionary<string, string> form);
public void MyFunc(string foo, HandlerInvoker invoker) { }
这是我让工人使用 MyFunc 的代码:
MyFunc("foobar", (x, y) => { return new Xyz();});
现在我知道这还不错。但是,我真的很想能够使用 Linq 类型语法。例如,这很容易做到
ObjectList.Where(x=>x.Foo=="bar");
如您所见,Linq 语法的优点是没有return 语句,“参数”周围没有括号,也没有花括号。
为什么我的 lambda 表达式中不能有这种语法?如果我删除 return 语句,我会收到关于并非所有代码路径都返回值的错误。
【问题讨论】:
标签: c# .net linq delegates lambda