Ya se ha dicho que la sintaxis especial de definición de delegados no es más que una forma especial definir subclases de System.MulticastDelegate. Esta clase a su vez deriva de System.Delegate, que representa a objetos delegados que sólo puede almacenar un único método. Por tanto, todos los objetos delegado que se definan contarán con los siguientes miembros comunes heredados de estas clases:
Este método es especialmente útil porque a través de la tabla que retorna se pueden hacer cosas tales como ejecutar los métodos del delegado en un orden diferente al de su almacenamiento, procesar los valores de retorno de todas las llamadas a los métodos del delegado original, evitar que una excepción en la ejecución de uno de los métodos impida la ejecución de los demás, etc.
Aparte de estos métodos de objeto, la clase System.MulticastDelegate también cuenta con los siguientes métodos de tipo de uso frecuente:
objDelegado += new D(obj1.g); objDelegado = objDelegado + new D(obj1.g); objDelegado = (D) MulticastDelegate.Combine(objDelegado, new D(obj1.g);
Es más, en realidad el compilador de C# lo que hace es convertir toda aplicación del operador + entre delegados en una llamada a Combine() como la mostrada.
Hay que tener cuidado con los tipos de los delegados a combinar ya que han de ser exactamente los mismos o si no se lanza una System.ArgumentException, y ello ocurre aún en el caso de que dichos sólo se diferencien en su nombre y no en sus tipos de parámetros y valor de retorno.
objDelegado -= new D(obj1.g); objDelegado - objDelegado - new D(obj1.g); objDelegado = (D) MulticastDelegate.Remove(objDelegado, new D(obj1.g);
Nuevamente, lo que hace el compilador de C# es convertir toda aplicación del operador - entre delegados en una llamada a Remove() como la mostrada. Por tanto, al igual que con -=, para borrar métodos de objeto se ha de especificar en aBorrar un objeto delegado que contenga referencias a métodos asociados a exactamente los mismos objetos que los almacenados en original.
explicas bien estos tutos gracias
Para preguntar utiliza los foros.