MSDN からの読み取り:「デリゲートは、メソッドを参照する型です。デリゲートにメソッドが割り当てられると、そのメソッドとまったく同じように動作します。」
「デリゲート」は型またはオブジェクトを意味しますか?!
...両方はあり得ません。1 つの単語が 2 つの異なる意味で使用されているように私には思えます。
- 指定されたシグネチャのメソッドへの参照を含む型、
- メソッドのように実際に呼び出すことができる、そのタイプのオブジェクト。
私はより正確な語彙を好み、最初のケースには「デリゲート型」を使用します。私は最近、イベントとデリゲートについて多くのことを読んでいますが、その曖昧さに何度も混乱していました。
最初の意味でのMSDNの「デリゲート」という言葉の他の使用法:
- 「カスタム イベント デリゲートは、イベントがイベント データを生成する場合にのみ必要です」
- 「デリゲート宣言は、クラス System.Delegate から派生したクラスを定義します」
2番目の意味でのMSDNの「デリゲート」という言葉の他の使用法:
- 「何らかのイベントの発生時に呼び出されるデリゲートを指定する」
- 「デリゲートはメソッドを参照するオブジェクトです。タイプセーフな関数ポインタとして記述されることもあります」
どう思いますか?なぜマイクロソフトの人々はこのあいまいさを導入したのですか? 同じ言葉で異なる概念が参照されているという概念上の問題を抱えているのは私だけでしょうか。