私はライブラリでラムダをかなり使用しています。私を本当に苛立たせているのは、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
ステートメント、「引数」の前後の括弧、および中括弧ではありません。
ラムダにこの種の構文を含めることができないのはなぜですか?returnステートメントを削除すると、すべてのコードパスが値を返すわけではないというエラーが発生します。