Tech
Forums
Jobs
Books
Events
Interviews
Live
More
Learn
Training
Career
Members
Videos
News
Blogs
Login
Sign Up
Ask Question
4
Reply
Error CS0079 relative to delegates and events
Isidro Padilla
Jan 12 2018 3:59 AM
169
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.
Reply
Upload Source Code
Select only zip and rar file.
Post
Reset
Answers (
4
)
How to append a decimal and string value in Linq?
Encoding issue while generating PDF with help of NRECO