検索
ホームページバックエンド開発C#.Net チュートリアルC# デリゲート、匿名メソッド、Lambda、汎用デリゲート、式ツリーのコード例を確認します。

C# デリゲート、匿名メソッド、Lambda、汎用デリゲート、式ツリーのコード例を確認してください:

これらは古い世代のプログラマーにとっての決まり文句であり、新しいものではありませんが、新世代のプログラマーにとっては内容が満載です。魅力的です。これまで、新世代の多くは、委任や式ツリーなどのアプリケーションを習得するために、長い学習、理解、実践のプロセスを経る必要がありました。今日は、このブログを誰でも 5 分で読めるように、簡単に説明しようと思います。

最初の 1 分: 代表団

一部の教科書やブログでは、委任について説明するときにイベントについて言及しますが、理解しやすくするために、今日はイベントではなく委任についてのみ説明します。最初のコード:

以下のコードは、委任されたアプリケーションのデモを完成させます。コミッションは 3 つのステップで構成されます:

りー

Step01: まず、デリゲートを使用してデリゲートを定義します。

Step02: デリゲートに対応するメソッドを宣言します。

Step03: このメソッドを使用して、このデリゲートをインスタンス化します。

この時点で、デリゲートが完了しているはずなので、そのデリゲートを呼び出すことができます。

2分目: 匿名メソッド

最後にすでにご存知のとおり、依頼されたアプリケーションを完了するには 3 つのステップがあります。大きな一歩を踏み出したい場合は、一歩を踏み出さないと失敗してしまうので注意してください。卵を傷つけます。しかし、Microsoft は糸を引くことを恐れず、3 つのステップを 2 つのステップに変えることを主張しています。したがって、Microsoft は匿名の方法を使用して、上記の 3 つの手順を簡素化しています。匿名メソッドについてはどう思いますか? 匿名メソッドは C# ではまったく必要ありません。それらは C# の飾りにすぎません。

りー

Step01: まず、デリゲートを使用してデリゲートを定義します。

Step02: この書き込みメソッド delegate(int x, int y) { return x + y; } を使用して、デリゲートにメソッドを割り当てます。

このとき、これは二歩の三歩ではないことに驚くでしょう?

3分目:ラムダ式

もともと単純なプログラムにいくつかのデリゲート キーワードを追加すると、コードが急に奥深くなり、奥深いことを理解する人が少なくなるため、給与アップの交渉材料としても使用できます。しかし、Microsoft の C# の設計哲学は、シンプルさと使いやすさです。 Microsoft は匿名メソッド delegate(int x, int y) { return x + y } を簡素化するためにあらゆる手段を試み、Lambda が登場しました。ラムダ式を記述するいくつかの方法を見てみましょう:

りー

方法 1: デリゲートを削除し、() と {} の間に「=>」を追加します。

方法 2: 方法 1 に基づいて、すべてのパラメータの種類が削除されます。

方法 3: やりたい場合は、より徹底的に実行し、{} と return キーワードを削除します。

これらの書き方はどれでも構いませんが、初心者にとっては迷惑なだけです。指導してくれる人がいないと、この書き方を目にすることもあります。本当に混乱するし、難しいのです。

4 分: 一般的な委任

.net バージョンはアップグレードされていないため、新しいバージョンは古いバージョンとは異なる必要があります。そうでない場合、Microsoft エンジニアは上司にどうやって報告すればよいでしょうか。そこでマイクロソフトは再び何か新しいことを計画している。

りー

匿名メソッドであってもラムダ式であっても、デリゲートの適用を完了するには 2 つの手順があります。1 つはデリゲートを定義することで、もう 1 つはメソッドを使用してデリゲートをインスタンス化することです。 Microsoft はこれら 2 つのステップを 1 つのステップに単純に結合しました。 Func を使用してデリゲートの定義を簡素化します。

この時点で、デリゲートの適用は Func cAdd3 = (x, y) => x + y; で完了できます。

5分目: 式ツリー

実際、式ツリーは委任とは何の関係もありません。関連する必要がある場合は、式ツリーが委任を保存するためのコンテナであるとだけ言っておきましょう。より専門的な話をしなければならない場合、式ツリーはラムダ式にアクセスするためのデータ構造です。 Lambda 式を使用する場合は、式から直接取得し、Compile() を直接使用します。次のコード:

public partial class WebForm3 : System.Web.UI.Page
{
    //step01:首先用delegate定义一个委托 。
    public delegate int CalculatorAdd(int x, int y);

    protected void Page_Load(object sender, EventArgs e)
    {
        //step03:用这个方法来实例化这个委托。
        CalculatorAdd cAdd = new CalculatorAdd(Add);
        //int result = cAdd(5, 6);
        int result = cAdd.Invoke(5,6);
    }
    // step02:声明一个方法来对应委托。
    public int Add(int x, int y)
    {
        return x + y;
    }
}

私が触れたことは非常に表面的なものでしたが、少なくとも、委任、匿名メソッド、Lambda、汎用委任、式ツリーに関する別の記事を誰もがレビューできるようになりました。


以上がC# デリゲート、匿名メソッド、Lambda、汎用デリゲート、式ツリーのコード例を確認します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Web、デスクトップ、モバイル開発用のC#.NETWeb、デスクトップ、モバイル開発用のC#.NETApr 25, 2025 am 12:01 AM

C#と.NETは、Web、デスクトップ、モバイル開発に適しています。 1)Web開発では、ASP.Netcoreがクロスプラットフォーム開発をサポートしています。 2)デスクトップ開発では、さまざまなニーズに適したWPFとWINFORMSを使用します。 3)モバイル開発は、Xamarinを介したクロスプラットフォームアプリケーションを実現します。

C#.NETエコシステム:フレームワーク、ライブラリ、およびツールC#.NETエコシステム:フレームワーク、ライブラリ、およびツールApr 24, 2025 am 12:02 AM

C#.NETエコシステムは、開発者がアプリケーションを効率的に構築できるようにするための豊富なフレームワークとライブラリを提供します。 1.ASP.NETCOREは、高性能Webアプリケーションの構築に使用されます。2.EntityFrameWorkCoreは、データベース操作に使用されます。これらのツールの使用とベストプラクティスを理解することにより、開発者はアプリケーションの品質とパフォーマンスを向上させることができます。

azure/awsへのc#.netアプリケーションの展開:ステップバイステップガイドazure/awsへのc#.netアプリケーションの展開:ステップバイステップガイドApr 23, 2025 am 12:06 AM

c#.netアプリをAzureまたはAWSに展開する方法は?答えは、AzureAppServiceとAwselasticBeanStalkを使用することです。 1。Azureでは、AzureAppServiceとAzurePipelinesを使用して展開を自動化します。 2。AWSでは、Amazon ElasticBeanstalkとAwslambdaを使用して、展開とサーバーレス計算を実装します。

C#.NET:強力なプログラミング言語の紹介C#.NET:強力なプログラミング言語の紹介Apr 22, 2025 am 12:04 AM

C#と.NETの組み合わせにより、開発者に強力なプログラミング環境を提供します。 1)C#は、多型と非同期プログラミングをサポートします。2).NETは、クロスプラットフォーム機能と同時処理メカニズムを提供し、デスクトップ、Web、モバイルアプリケーション開発で広く使用されています。

.NETフレームワーク対C#:用語のデコード.NETフレームワーク対C#:用語のデコードApr 21, 2025 am 12:05 AM

.NetFrameworkはソフトウェアフレームワークであり、C#はプログラミング言語です。 1..netframeworkは、デスクトップ、Web、モバイルアプリケーションの開発をサポートするライブラリとサービスを提供します。 2.C#は.NetFrameWork用に設計されており、最新のプログラミング機能をサポートしています。 3..NetFrameworkはCLRを介してコード実行を管理し、C#コードはILにコンパイルされ、CLRによって実行されます。 4. .NetFrameWorkを使用してアプリケーションをすばやく開発し、C#はLINQなどの高度な関数を提供します。 5.一般的なエラーには、タイプ変換と非同期プログラミングデッドロックが含まれます。 VisualStudioツールは、デバッグに必要です。

C#.NETの分解:初心者の概要C#.NETの分解:初心者の概要Apr 20, 2025 am 12:11 AM

C#は、Microsoftが開発した最新のオブジェクト指向プログラミング言語であり、.NETはMicrosoftが提供する開発フレームワークです。 C#は、CのパフォーマンスとJavaのシンプルさを組み合わせており、さまざまなアプリケーションの構築に適しています。 .NETフレームワークは、複数の言語をサポートし、ガベージコレクションメカニズムを提供し、メモリ管理を簡素化します。

C#と.NETランタイム:それらがどのように連携するかC#と.NETランタイム:それらがどのように連携するかApr 19, 2025 am 12:04 AM

C#と.NETランタイムは密接に連携して、開発者に効率的で強力なプラットフォームの開発機能に力を与えます。 1)C#は、.NETフレームワークとシームレスに統合するように設計されたタイプセーフおよびオブジェクト指向のプログラミング言語です。 2).NETランタイムは、C#コードの実行を管理し、ガベージコレクション、タイプの安全性、その他のサービスを提供し、効率的でクロスプラットフォームの操作を保証します。

C#.NET開発:始めるための初心者向けガイドC#.NET開発:始めるための初心者向けガイドApr 18, 2025 am 12:17 AM

C#.NET開発を開始するには、次のことが必要です。1。C#の基本的な知識と.NETフレームワークのコア概念を理解する。 2。変数、データ型、制御構造、関数、クラスの基本概念をマスターします。 3。LINQや非同期プログラミングなど、C#の高度な機能を学習します。 4.一般的なエラーのためのデバッグテクニックとパフォーマンス最適化方法に精通してください。これらの手順を使用すると、C#.NETの世界に徐々に浸透し、効率的なアプリケーションを書き込むことができます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール