C# のラムダ式とは何ですか?

王林
王林転載
2023-09-08 14:25:15699ブラウズ

C# のラムダ式とは何ですか?

ラムダ式は、匿名メソッドを表すより良い方法です。匿名メソッドとラムダ式の両方でメソッド実装をインラインで定義できますが、匿名メソッドではメソッドのパラメーターの型と戻り値の型を明示的に定義する必要があります。

式ラムダ本体として式を含む式: (入力パラメータ) => 式

本体としてステートメント ブロックを持つステートメント ラムダ: (入力パラメータ) => { }

任意のラムダ式をデリゲート型に変換できます。 ラムダ式を変換できるデリゲートの型は、そのパラメーターと戻り値の型によって定義されます。ラムダ式が値を返さない場合は、Action デリゲート型の 1 つにキャストでき、そうでない場合は、Func デリゲート型の 1 つにキャストできます。

static void Main(string[] args){
   Func<int, int> square = x => x * x;
   Console.WriteLine(square(5));
   Console.ReadLine();
}

=> 演算子の右側に式を含むラムダ式は、式ラムダと呼ばれます。式ラムダは、次の基本形式で式の結果を返します。

Action line = () => Console.WriteLine();

Funccube = x => x * x * x;

Func testForEquality = (x, y) => x == y;

Func isTooLong = (int x, string s) => s 。長さ > x;

C# 7.0 では、C# 言語はタプルの組み込みサポートを提供します。タプルをラムダ式の引数として指定でき、ラムダ式はタプルを返すこともできます。

ラムダ式で導入された変数は、それを囲んでいるメソッドでは表示されません。

ラムダ式は、囲んでいるメソッドから in、ref、または out パラメータを直接キャプチャすることはできません。

ラムダ式の return ステートメントによって、外側のメソッドが返されることはありません。

Jump ステートメントのターゲットがラムダ式ブロックの外側にある場合、ラムダ式に goto、break、または continue ステートメントを含めることはできません。ターゲットがラムダ式ブロックの内側にある場合、ラムダ式ブロックの外側でジャンプ ステートメントを使用することもエラーとなります。

以上がC# のラムダ式とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。