デリゲートの宣言は次のようなものであることを理解しています。
public delegate int PerformCalculation(int x, int y);
ただし、さらに多くのことが行われている必要があります。デリゲートの目的は、メソッドへのポインターを提供することと、メソッドへの参照をデリゲートにカプセル化することです。
この参照はどのような構造で (デリゲートの内部で) 保持されていますか? また、複数のメソッドへの参照をデリゲートにカプセル化できることも理解しています。これは、これらを保持するデリゲートに配列があることを意味しますか?
また、デリゲートで定義されているメソッドなど。デリゲートを簡潔に宣言すると実際に何が起こるか:
public delegate int PerformCalculation(int x, int y);
?
編集:いくつかの明確化。デリゲートを宣言すると、コンパイラは System.MulticastDelegate から継承するシールクラスを自動的に作成します。これは、アセンブリをildasmで見るとわかります。このすっきり。基本的に、1 つのステートメントで、コンパイル時に生成された新しいクラス全体を取得し、必要なすべての機能を備えています。