C# の名前のない関数は匿名関数と呼ばれ、名前のない関数としても表現できます。 C# の匿名関数には、C# のラムダ式と C# の匿名メソッドの 2 つのタイプがあります。デリゲートの作成に使用される匿名関数は、C# ではラムダ式と呼ばれます。これを使用してローカル関数を作成し、引数およびクエリとして渡すことができます。 LINQ の関数は、ラムダ式を使用して作成することもできます。匿名メソッドでも同じ機能が提供されますが、パラメータのリストを使用できない点が異なります。
C# には 2 種類の匿名関数があります。それらは次のとおりです:
(input-parameters) => expression
数値の 2 乗を求めるプログラムでのラムダ式を示す C# プログラム:
コード:
using System; //a namespace called program is defined namespace program { //a class called check is defined class check { delegate int Findsquare(int number); //main method is called static void Main(string[] args) { //a lambda expression to find the square of a number is defined Findsquare Obtainsquare = r => r * r; int l = Obtainsquare(3); Console.WriteLine("The Square of the given number is: "+l); } } }
出力:
上記のプログラムでは、programという名前空間が定義されています。次に、check というクラスが定義されます。次に、main メソッドが呼び出されます。次に、数値の 2 乗を求めるラムダ式が定義されます。ラムダ式で求めた数値の2乗が表示されます。
数値がリストに存在するかどうかを判断するプログラムでラムダ式をデモンストレーションする C# プログラム:
コード:
using System; using System.Collections.Generic; //a namespace called program is defined namespace program { //a class called check is defined class check { //main method is called static void Main(string[] args) { //a new list of type integer is created List<int> mylist = new List<int>(); //integers are added to the list using add() method mylist.Add(10); mylist.Add(20); mylist.Add(30); //a lambda expression and find method is used to determine if a number is present in the list int found = mylist.Find(r => r == 20); if(found==0) { Console.WriteLine("The number is present in the list"); } else { Console.WriteLine("The number is not present in the list"); } //a lambda expression and find method is used to determine if a number is present in the list found = mylist.Find(r => r == 40); if(found==0) { Console.WriteLine("The number is present in the list"); } else { Console.WriteLine("The number is not present in the list"); } } } }
出力:
上記のプログラムでは、programという名前空間が定義されています。次に、check というクラスが定義されます。次に、main メソッドが呼び出されます。次に、整数型の新しいリストが作成されます。次に、Add() メソッドを使用してリストに整数が追加されます。次に、ラムダ式と Find() メソッドを使用して、リストに数値が存在するかどうかを判断します。
Delegate(parameter_list) { //Block of code };
プログラム内で匿名メソッドをデモンストレーションするための C# プログラム:
コード:
using System; //a class called program is defined class program { //a delegate is created by using delegate keyword public delegate void subject(string favsubject); // Main method is called static public void Main() { // a parameter is passed to the anonymous method using delegate keyword subject sub = delegate(string favsubject) { Console.WriteLine("{0} is my favourite subject", favsubject); }; sub("C#"); } }
出力:
上記のプログラムではクラスプログラムが定義されています。次に、delegate キーワードを使用してデリゲートが作成されます。次に、main メソッドが呼び出されます。次に、delegate キーワードを使用してパラメータが匿名メソッドに渡されます。
外部メソッドで定義された変数にアクセスできるプログラム内の匿名メソッドを示す C# プログラム:
コード:
using System; //a class called program is defined class program { //anonymous method is declared using delegate keyword public delegate void subject(string favsubject); // Main method is called static public void Main() { //a string variable is defined in the outside method from anonymous method string favsubject1 = "Coding_in_C#"; // a parameter is passed to the anonymous method using delegate keyword subject sub = delegate(string favsubject) { Console.WriteLine("{0} is my favourite subject", favsubject); Console.WriteLine("I also like {0}", favsubject1); }; sub("C#"); } }
出力:
上記のプログラムでは、programというクラスが定義されています。次に、delegate キーワードを使用してデリゲートが作成されます。次に、main メソッドが呼び出されます。次に、匿名メソッドの外部メソッドである文字列変数が定義されます。次に、delegate キーワードを使用してパラメータが匿名メソッドに渡されます。匿名メソッドは、匿名メソッドの外部の変数にもアクセスします。
以上がC# 匿名関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。