Ear*_*rlz 0 .net c# linq lambda delegates
我在图书馆里使用lambdas很多.真让我烦恼的一件事是我似乎无法摆脱返回声明,而且我周围有相当多的样板代码.
到目前为止它是如何工作的:
public delegate IBarelyView HandlerInvoker(IDictionary<string, string> route, IDictionary<string, string> form);
public void MyFunc(string foo, HandlerInvoker invoker) { }
Run Code Online (Sandbox Code Playgroud)
这是我有工作人员使用MyFunc的代码:
MyFunc("foobar", (x, y) => { return new Xyz();});
Run Code Online (Sandbox Code Playgroud)
现在我知道这不是太糟糕了.但是,我真的希望能够使用Linq类型语法.例如,它很容易做到
ObjectList.Where(x=>x.Foo=="bar");
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,Linq语法的正面没有return声明,没有括号围绕"参数",也没有花括号.
为什么我的lambdas中不能有这种语法?如果我删除return语句,我得到一个错误,不是所有代码路径都返回一个值.
Lew*_*rin 10
尝试: MyFunc("foobar", (x, y) => new Xyz());