C#グラフィックチュートリアル研究ノート - 校長

まず、手数料概説
デリゲートとクラス、ユーザー定義型は、参照型です。しかし、このクラスは、データとメソッドの集合を表し、デリゲートは、1つ以上のメソッド、および事前に定義された一連の操作を保持しています。
:デリゲートは、次のステップで使用することができる
(1)デリゲート型宣言。Method文とプロキシ文は似ていますが、ブロックを実装されていません。
(2)代理変数を宣言するためにデリゲート型の使用。
(3)オブジェクトデリゲート型を作成変数手数料に割り当てます。新しいデリゲートオブジェクトは、メソッド、この方法および署名を定義する最初のステップへの参照点を含み、同一の型を返します。
(4)オプションは、デリゲートオブジェクトに他のメソッドを追加します。これらの方法は、デリゲートシグネチャと戻り型の同じタイプの最初のステップで定義されなければなりません。
(5)あなたは同じコードのようなデリゲートメソッドの呼び出しを呼び出すことができます。デリゲートが呼び出されると、それは各メソッドが実行されますが含まれています。
注:
(1)委員会、コールリストと呼ばれるメソッドのリスト。
(2)デリゲートを保持する方法があれば、それらが同じデリゲート署名の種類と戻り型缶を持っているように、静的な方法とすることができる、任意のクラスまたは構造体からのものであってもよいインスタンスメソッドであってもよいです。
この方法は、デリゲートが呼び出されたときに、それぞれの時間は、それがリストに方法を見つけた、一度呼び出しリスト内で複数出現した場合(3)それは一度だけ呼び出されます。
(4)代表者は一定です。作成された後に変更することはできません委譲オブジェクト。

 

第二に、型宣言のデリゲートとオブジェクトの作成
1.デリゲート型の宣言

構文:

2.デリゲートオブジェクトを作成し
、デリゲートオブジェクトを作成するには、手数料のためのメモリを割り当てます手数料に最初のメソッド呼び出しリストに入れられます。
1を作成します。

方法II(速記構文)の作成:

アイコン:

 

第三に、委託操作
に作成されたデリゲートオブジェクトが一定不変である後に起因するが、それは手数料の組み合わせで、デリゲートメソッドから削除デリゲートを追加する方法は、基本的に新しい委員会を作成しています。
1.コンビネーションは、委託
手数料の組み合わせを:基本的に2つのデリゲートオペランドのコピーとしてコールリストコールリストに接続され、新たな委員会を、作成します。
例:

アイコン:

デリゲートメソッドを追加するには2.
C#が増加するメソッドのデリゲートの一覧を呼び出すための+ =演算子の使用をサポートしています。
例:

デリゲートメソッドから削除3.
C#のをサポート- =演算子は、デリゲートメソッドを呼び出して、リストから削除されます。
例:

注:
(1)複数のインスタンスが呼び出しリストにある場合は、 - =演算子は、リストの末尾から検索を開始し、マッチング方法の最初のインスタンスを削除します。
(2)何の効果も存在しませんデリゲートメソッドを削除しようとします。
(3)空のデリゲートが例外をスロー呼び出そう。ヌルとリストが空であるかどうかを判断するために委託し、コンペア委ねることで。コールリストが空の場合、手数料はnullです。
4.呼び出しデリゲートは、
メソッド呼び出しのデリゲートを呼び出すのと同じくらい簡単です。パラメータは、各メソッド呼び出しのためのデリゲートのリストを呼び出します。
例:

アイコン:

 

第四に、委員会の引数と戻り、問題の値
デリゲートを参照してパラメータを呼び出し1.
デリゲートが参照パラメータを持っている場合、パラメータ値は、コールリストまたは複数のメソッドの戻り値に応じて異なりますが、最後の値は、デリゲートのリストを呼び出すことですパラメータの結果にターン行為のすべてのメソッド。
戻り値を委託2.コールは、
デリゲートに戻り値があると、複数のメソッドリストを呼び出した場合、戻り値は、手数料の値である方法は、最後の呼び出しのリストを返す呼び出して、他の戻り値は無視されます。
3.委任割り当てに匿名メソッドを使用する
例:

 

おすすめ

転載: www.cnblogs.com/wujuntian/p/10990334.html