この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 18347|答える: 0

[通信] C#のデリゲート

[リンクをコピー]
掲載地 2019/02/07 21:08:45 | | |
1. 委任とは何か?

デリゲートは参照型であり、関数ポインタの管理されたバージョンです。 C#では、デリゲートは参照を関数として格納する型です。 デリゲートはインスタンスと静的メソッドの両方を参照できますが、関数ポインタは静的メソッドのみを参照できます。 デリゲート宣言は関数と非常に似ており、デリゲートは関数ボディを持たず、Delegateキーワードを必要とします。 委任宣言はパラメータのリストとリターン型を含む関数署名を指定します。 デリゲートが定義されると、そのレゲイト型の変数を宣言でき、その変数はデリゲートと同じ署名を持つ関数によって参照されて初期化され、デリゲート変数を使って呼び出すことができます。 (追伸:実際、彼はクラスを託し、そのメソッドをパラメータとして他のメソッドに渡すことを目的としていました!) )

デリゲートは関数ポインタに非常に似ていますが、ポインタではありません。 多くの人が。 .NETのデリゲートは安全な関数ポインタとして理解されており、これは突飛な考え方です。また、デリゲート実装の関数ポインタはプログラムのコールバック機構を提供する点で非常に似ています。

2. 託付の4つのステップ:1. 託付の種類を宣言する

  2. 実行すべきコードを含むメソッドが存在する

  3. 委任されたインスタンスを作成する

  4. 代理インスタンスを呼び出す

3. 例:






先の:[DllImport("user32.dll")]およびC#での外部使用について
次に:純粋なC#フック実装
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com