C#デリゲートとイベントの説明
序文から、コミッションとイベントの重要性についてはある程度理解していただけると思いますが、まだ曖昧な部分もありますが、私の日常的なシリーズからこれらの概念をわかりやすく説明します。まず、代表について話しましょう。文字通り理解すれば、すべての中国人がこの意味を知っているはずです。ただし、たとえば、Xiao Ming が Xiao Zhang にチケットを買うように頼みます。
しかし、私たちのプログラミングの世界でも、それはそれほど単純なのでしょうか?もちろん、OO とは何ですか? OO は現実世界の抽象化です。申し訳ありませんが、話が行き過ぎています...
それでは、本題に移りましょう。学生は退屈することはありません。インターネット上で中国語と英語の GreetingPeople の例をご覧ください。
テレンス経由で C# に接続構文
public delegate void BugTicketEventHandler();
out . Cultivation]
これで終わりです。委任です。とても簡単です。通常の方法と何が違うのか見てみましょう。
public void BuyTicket() { 方法体 }
違いはわかりますか? 現実の世界では、デリゲートは単なるコマンドであり、他の誰かが作業を行います。しかし、プログラミングの世界では、デリゲートは各メソッドのアドレスを保存するだけで、デリゲート自身は何も行いません。
それでは、シャオミンがシャオ・チャンにチケットを買うように頼んだ実際のシーンを、プログラムの世界にどのように反映できるでしょうか?
代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//小张类 public class MrZhang { //其实买车票的悲情人物是小张 public static void BuyTicket() { Console.WriteLine("NND,每次都让我去买票,鸡人呀!"); } } //小明类 class MrMing { //声明一个委托,其实就是个“命令” public delegate void BugTicketEventHandler(); public static void Main(string[] args) { //这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票” BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket); //这时候委托被附上了具体的方法 myDelegate(); Console.ReadKey(); } }
BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket);
これはデリゲートの宣言メソッドです、BugTicketEventHandler (委任されたメソッド); 委任されたコンストラクターが空ではないため、委任されたメソッドを追加する必要があります。
注: デリゲートのパラメーターと戻り値の型は、委任するメソッドと一致している必要があります。例:
public delegate void BugTicketEventHandler();
public static void BuyTicket()
{
Console.WriteLine (「NND、毎回チケット買わせてよ、チキンマン!」);
}
学生の皆さん、これを理解して少し休憩してください:
実際、現実の世界では、シャオミンがシャオ・チャンにチケットを買うように頼んだ後、映画のチケットを持ってくるように頼むかもしれません
そして、私たちのプログラムの世界では、次のような表現になります:
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->//小张类 public class MrZhang { //其实买车票的悲情人物是小张 public static void BuyTicket() { Console.WriteLine("NND,每次都让我去买票,鸡人呀!"); } public static void BuyMovieTicket() { Console.WriteLine("我去,自己泡妞,还要让我带电影票!"); } } //小明类 class MrMing { //声明一个委托,其实就是个“命令” public delegate void BugTicketEventHandler(); public static void Main(string[] args) { //这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票” BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket); myDelegate += MrZhang.BuyMovieTicket; //这时候委托被附上了具体的方法 myDelegate(); Console.ReadKey(); } }
実際には、プログラムに myDelegate += MrZhang.BuyMovieTicket;
を追加しました
ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











C#.NETインタビューの質問と回答には、基本的な知識、コアの概念、高度な使用が含まれます。 1)基本知識:C#は、Microsoftが開発したオブジェクト指向言語であり、主に.NETフレームワークで使用されています。 2)コアの概念:委任とイベントは動的な結合方法を可能にし、LINQは強力なクエリ関数を提供します。 3)高度な使用:非同期プログラミングは応答性を向上させ、式ツリーは動的コード構造に使用されます。

C#は、Microsoftによって開発された最新のオブジェクト指向プログラミング言語であり、.NETフレームワークの一部として開発されています。 1.C#は、カプセル化、継承、多型を含むオブジェクト指向プログラミング(OOP)をサポートしています。 2。C#の非同期プログラミングは非同期を通じて実装され、適用応答性を向上させるためにキーワードを待ちます。 3. LINQを使用してデータ収集を簡潔に処理します。 4.一般的なエラーには、null参照の例外と、範囲外の例外インデックスが含まれます。デバッグスキルには、デバッガーと例外処理の使用が含まれます。 5.パフォーマンスの最適化には、StringBuilderの使用と、不必要な梱包とボクシングの回避が含まれます。

C#.NETアプリケーションのテスト戦略には、ユニットテスト、統合テスト、エンドツーエンドテストが含まれます。 1.単位テストにより、コードの最小ユニットがMSTEST、ヌニット、またはXUNITフレームワークを使用して独立して動作することを保証します。 2。統合テストでは、一般的に使用されるシミュレートされたデータと外部サービスを組み合わせた複数のユニットの機能を検証します。 3.エンドツーエンドのテストでは、ユーザーの完全な操作プロセスをシミュレートし、通常、セレンは自動テストに使用されます。

c#.netisversatileforbothwebanddesktopdevelopment.1)forweb、useasp.netfordynamicapplications.2)fordesktop、equindowsorwpfforrichinterfaces.3)usexamarinforcross-platformdeveliment、enabling deshacrosswindows、

C#.NETは、複数のアプリケーション開発をサポートする強力なツールとライブラリを提供するため、依然として重要です。 1)C#は.NETフレームワークを組み合わせて、開発を効率的かつ便利にします。 2)C#のタイプの安全性とゴミ収集メカニズムは、その利点を高めます。 3).NETは、クロスプラットフォームの実行環境とリッチAPIを提供し、開発の柔軟性を向上させます。

C#シニア開発者とのインタビューでは、非同期プログラミング、LINQ、.NETフレームワークの内部作業原則などのコア知識をマスターする必要があります。 1.非同期プログラミングは、非同期を通じて操作を簡素化し、アプリケーションの応答性を向上させるのを待ちます。 2.LinqはSQLスタイルでデータを操作し、パフォーマンスに注意を払います。 3.ネットフレームワークのCLRはメモリを管理し、ガベージコレクションに注意して使用する必要があります。

c#.netissuitableforenterprise-levelApplicationsとsystemduetoitsSystemdutyping、richlibraries、androbustperformance.

C#は、エンタープライズレベルのアプリケーション、ゲーム開発、モバイルアプリケーション、Web開発で広く使用されています。 1)エンタープライズレベルのアプリケーションでは、C#がasp.netcoreにWebAPIを開発するためによく使用されます。 2)ゲーム開発では、C#がUnityエンジンと組み合わされて、ロールコントロールやその他の機能を実現します。 3)C#は、コードの柔軟性とアプリケーションのパフォーマンスを改善するために、多型と非同期プログラミングをサポートします。
