ホームページ  >  記事  >  バックエンド開発  >  C# 匿名関数

C# 匿名関数

PHPz
PHPzオリジナル
2024-09-03 15:14:47456ブラウズ

C# の名前のない関数は匿名関数と呼ばれ、名前のない関数としても表現できます。 C# の匿名関数には、C# のラムダ式と C# の匿名メソッドの 2 つのタイプがあります。デリゲートの作成に使用される匿名関数は、C# ではラムダ式と呼ばれます。これを使用してローカル関数を作成し、引数およびクエリとして渡すことができます。 LINQ の関数は、ラムダ式を使用して作成することもできます。匿名メソッドでも同じ機能が提供されますが、パラメータのリストを使用できない点が異なります。

C# の匿名関数の種類

C# には 2 種類の匿名関数があります。それらは次のとおりです:

1.ラムダ式

  • デリゲートは、ラムダ式と呼ばれる一種の匿名関数を使用して作成できます。
  • ローカル関数は、引数として渡すことができるラムダ式を使用して作成できます。
  • LINQ のクエリは、ラムダ式を使用して作成できます。
  • C# のラムダ式の構文は次のとおりです。
(input-parameters) => expression
例 #1

数値の 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);
}
}
}

出力:

C# 匿名関数

上記のプログラムでは、programという名前空間が定義されています。次に、check というクラスが定義されます。次に、main メソッドが呼び出されます。次に、数値の 2 乗を求めるラムダ式が定義されます。ラムダ式で求めた数値の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");
}
}
}
}

出力:

C# 匿名関数

上記のプログラムでは、programという名前空間が定義されています。次に、check というクラスが定義されます。次に、main メソッドが呼び出されます。次に、整数型の新しいリストが作成されます。次に、Add() メソッドを使用してリストに整数が追加されます。次に、ラムダ式と Find() メソッドを使用して、リストに数値が存在するかどうかを判断します。

2.匿名メソッド

  • 名前のないメソッドは、C# では匿名メソッドと呼ばれます。
  • 匿名メソッドは C# バージョン 2.0 で導入されました。
  • インライン メソッドを作成する場合、匿名メソッドを使用します。また、他のメソッドにパラメータを渡す方法と同様に、パラメータもメソッドに渡す必要があります。
  • キーワード delegate は匿名メソッドの定義に使用され、このメソッドはデリゲート型の変数に割り当てることができます。
  • C# の匿名メソッドの構文は次のとおりです。
Delegate(parameter_list)
{
//Block of code
};
例 #1

プログラム内で匿名メソッドをデモンストレーションするための 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#");
}
}

出力:

C# 匿名関数

上記のプログラムではクラスプログラムが定義されています。次に、delegate キーワードを使用してデリゲートが作成されます。次に、main メソッドが呼び出されます。次に、delegate キーワードを使用してパラメータが匿名メソッドに渡されます。

例 #2

外部メソッドで定義された変数にアクセスできるプログラム内の匿名メソッドを示す 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#");
}
}

出力:

C# 匿名関数

上記のプログラムでは、programというクラスが定義されています。次に、delegate キーワードを使用してデリゲートが作成されます。次に、main メソッドが呼び出されます。次に、匿名メソッドの外部メソッドである文字列変数が定義されます。次に、delegate キーワードを使用してパラメータが匿名メソッドに渡されます。匿名メソッドは、匿名メソッドの外部の変数にもアクセスします。

以上がC# 匿名関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:C# の再帰関数次の記事:C# の再帰関数