A ver si me pueden ayudar porque aunque he buscado informaión y
se que el error está relacionado con la forma de la utilización
de delegados, estoy aprendiendo y mi nivel da para más.
El error que me lanza es este:
Error CS0079: El evento 'AssemblyManager.AssemblyUnloaded'
solo puede aparecer a la izquierda de += o -=.
¿Cuál es el cambio que debo hacer para que "AssemblyUnloaded"
no me arroje este error?
Código:
public event EventHandler<AssemblyEventArgs> AssemblyUnloaded
{
[MethodImpl(MethodImplOptions.Synchronized)]
add
{
AssemblyUnloaded += (EventHandler<AssemblyEventArgs>)Delegate.Combine(AssemblyUnloaded, value);
}
[MethodImpl(MethodImplOptions.Synchronized)]
remove
{
AssemblyUnloaded -= (EventHandler<AssemblyEventArgs>)Delegate.Remove( AssemblyUnloaded, value);
}
}
He encontrado ejemplos de solución como este que añado a continuación, pero no se aplicarlo al este caso concreeto.
Error CS0079
Su edición muestra una llamada recursiva: está declarando un evento personalizado, lo que significa que debe proporcionar un campo de respaldo; por ejemplo:
private EventHandler customEvent;
evento público estático EventHandler CustomEvent
{
agregar {customEvent + = valor; }
eliminar {customEvent - = valor; }
}
vacío estático privado Func ()
{
var tmp = customEvent;
if (tmp! = null) tmp (null, null);
}
Tenga en cuenta que en Func me refiero al campo (customEvent), no al evento (CustomEvent).
Sin embargo, esto es más simple, son mejores (thread-safe) como un evento de tipo campo:
evento estático público EventHandler CustomEvent;
vacío estático privado Func ()
{
var tmp = CustomEvent;
if (tmp! = null) tmp (null, null);
}
Un evento de tipo campo utiliza la palabra clave de evento, pero omite los accesos: el compilador agrega una gran cantidad de texto repetitivo para usted (un campo de respaldo y implementaciones de agregar / quitar hilos seguros). Además, permite el acceso al respaldo archivado a través del nombre del evento (del tipo declarante), de ahí que la línea var tmp = CustomEvent funciona.
Además: tenga mucho cuidado con los eventos estáticos; son una excelente manera de mantener accidentalmente muchos objetos vivos.
Les estaré muy agradecido por la ayuda que me puedan prestar.