式ラムダとステートメントラムダに違いはありますか?
もしそうなら、違いは何ですか?
以下のリンクでこの質問を見つけましたが、答えを理解できませんでした。 Expression Lambda とは何ですか?
そのリンクで言及されている答えはこれです 右側に式を持つラムダ式は、式ラムダと呼ばれます。
私の理解では、式は常に右側にのみあります。それが私がこの質問をしている理由です。私が知らないことはありますか?
これは確かに紛らわしい専門用語です。これ以上のものは思いつきませんでした。
ラムダ式は、次のいずれかの包括的な用語です。
x => M(x)
(x, y) => M(x, y)
(int x, int y) => M(x, y)
x => { return M(x); }
(x, y) => { return M(x, y); }
(int x, int y) => { return M(x, y); }
ラムダ演算子の右辺が式であるため、最初の 3 つは式ラムダです。ラムダ演算子の右側が block であるため、最後の 3 つはステートメントラムダです。
これは、左側に 3 つの可能な構文があることも示しています。単一のパラメーター名、型なしパラメーターの括弧付きリスト、または型付きパラメーターの括弧付きリストのいずれかです。
はい、あります-または、おそらく一方が他方を定義していると言うべきです。
ラムダ式を使用すると、単純な無名関数を割り当てることができます。
式ラムダ は、ラムダ演算子の右側に式を持つラムダの一種です。
もう 1 つのタイプのラムダ式は、式の右側にステートメント ブロックが含まれているため、ステートメント ラムダです。{...}
number => (number % 2 == 0)
number => { return number > 5 }
lampda 式は無名関数で、コンパイラは aFunc<T>
またはa に変換できますExpression<Func<T>>
(使用法に応じてコンパイラによって推測されます)。
「式ラムバ」が何を意味するのか完全には明確ではありませんが、ポッドキャスト/ウェブキャストなどでこのフレーズを聞いたことがある場合は、ラムダ式を指している可能性があります。または、 Expression インスタンスからラムダを取得するために使用するプロパティExpression.Lambdaである可能性があります。