C# λ演算子=>匿名メソッドlambda式
Lambda式は匿名関数であり,C 3.0が導入した新しい特性である.Lambda演算子=>は、「goes to」と読みます.C#依頼に匿名者を定義できる仕組みを提供
メソッド、匿名メソッドには名前がありません.コンパイラは名前を指定します.匿名メソッドでは、ジャンプ文を使用して匿名メソッドの外部にジャンプしたり、メソッドの内部にジャンプしたりすることはできません.匿名メソッドの外部にも
使用するrefパラメータとoutパラメータ.
次のコードはLambda式を簡単に示しています.
λ演算子=>
左側はパラメータで、カッコ表現(string param)を使用して、
右側は実装コードで、カッコを使用します.コードが1行しかない場合は、カッコとreturnキーワードを使用しなくてもいいです.コンパイラが追加します.
これはλ式の簡単な実装:
1パラメータ:
2つ以上のパラメータ:2つ以上のパラメータは簡単に書くことはできません.カッコでパラメータを宣言する必要があります.
パラメータなし:
メソッド、匿名メソッドには名前がありません.コンパイラは名前を指定します.匿名メソッドでは、ジャンプ文を使用して匿名メソッドの外部にジャンプしたり、メソッドの内部にジャンプしたりすることはできません.匿名メソッドの外部にも
使用するrefパラメータとoutパラメータ.
次のコードはLambda式を簡単に示しています.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions; //using
namespace Lambda
{
class Program
{
//
delegate string MyDelagate(string val);
static void Main(string[] args)
{
string str1 = "
";
// , ,
MyDelagate my = (string param) =>
{
string str2 = "
";
return(param + str1 + str2);
};
//
Console.WriteLine(my("
"));
// ,
Console.Read();
}
}
}
λ演算子=>
左側はパラメータで、カッコ表現(string param)を使用して、
右側は実装コードで、カッコを使用します.コードが1行しかない場合は、カッコとreturnキーワードを使用しなくてもいいです.コンパイラが追加します.
これはλ式の簡単な実装:
string str1 = " ";
string str2 = " ";
MyDelagate my = param => param + str1 + str2;
Console.WriteLine(my(" "));
1パラメータ:
private delegate int MyDelagate(int i);
MyDelagate test1 = x => x * x;
MyDelagate test2 = (x) => x * x;
MyDelagate test3 = (int x) => x * x;
MyDelagate test4 = (int x) => { return x * x; };
Console.WriteLine(test1(10));
Console.WriteLine(test2(10));
Console.WriteLine(test3(10));
Console.WriteLine(test4(10));
2つ以上のパラメータ:2つ以上のパラメータは簡単に書くことはできません.カッコでパラメータを宣言する必要があります.
private delegate int MyDelagate(int x, int y);
MyDelagate test1 = (x, y) => x * y;
MyDelagate test2 = (int x, int y) => x * y;
MyDelagate test3 = (int x, int y) => { return x * y; };
Console.WriteLine(test1(3,4));
Console.WriteLine(test2(3,4));
Console.WriteLine(test3(3,4));
パラメータなし:
private delegate void Void();
void test11 = () => { Console.WriteLine("Void Params"); };
test11();