entiendo que una declaración de un delegado es algo como esto:En .NET, ¿cuál es la implementación interna de un delegado?
public delegate int PerformCalculation(int x, int y);
Sin embargo, tiene que haber más en juego. El propósito del delegado es proporcionar un puntero a un método, y para hacerlo encapsula la referencia al método en el delegado.
¿Qué tipo de estructura tiene esta referencia (internamente en el delegado)? También entiendo que puede encapsular una referencia a múltiples métodos en un delegado. ¿Esto significa que hay una matriz en el delegado que los contiene?
Además, ¿qué métodos se definen en el delegado, etc. Lo que realmente está sucediendo cuando se declara un delegado con el escueto:
public delegate int PerformCalculation(int x, int y);
?
EDIT: Algunas aclaraciones. Cuando declara un delegado, el compilador automáticamente crea una clase sellada que hereda de System.MulticastDelegate por usted. Puede ver esto si mira su conjunto con ildasm. Esta ordenado. Básicamente, con una declaración, obtendrá una nueva generación generada para usted en tiempo de compilación, y tiene toda la funcionalidad que necesita.
Puede comprobar mucho con reflector. Faltan algunas partes porque requieren tiempo de ejecución mágico. Pero aún verá la mayoría de los contenidos de delegados únicos y multidifusión. – CodesInChaos