0

我在库中使用了相当多的 lambdas。真正让我恼火的一件事是我似乎无法摆脱 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 语句,我会收到关于并非所有代码路径都返回值的错误。

4

1 回答 1

10

尝试: MyFunc("foobar", (x, y) => new Xyz());

于 2012-10-14T22:27:47.773 回答