Eventos restringe cómo se puede manipular la lista de delegados, ya que solo puede agregar y eliminar delegados a través de los operadores +=
y -=
. Los delegados, por otro lado, no tienen esta restricción por lo que dadas las definiciones a continuación.
public event DelegateType Events;
public DelegateType Delegates;
Usted puede hacer lo siguiente
instance.Delegates = null; // clear the list of delegates
pero el compilador le impedirá hacer
instance.Events = null; // doesn't compile
Cuando se compila el campo Events
es en realidad private
pesar de su declaración como public
y el compilador simplemente agrega agregar/quitar métodos para manipular la lista.
+1! Estoy aprendiendo C# ahora y también tuve la misma pregunta. – user1859587