C# 匿名関数

PHPz
リリース: 2024-09-03 15:14:47
オリジナル
335 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!