none
Error CS0079 RRS feed

  • Pregunta

  • 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);
      }
    }

    Gracias anticipadas por vuestra ayuda.
    miércoles, 10 de enero de 2018 14:29

Respuestas

  • hola

    de donde obtuviste ese codigo ?

    add (C# Reference)

    si te fijas en el ejemplo usa el += y -= en el add y remove

    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);
    	}
    }

    quizas sea ese el problema

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 10 de enero de 2018 19:40
  • Hola Pablo, muchas gracias por tu ayuda. Ya lo había visto ese elace, pero es que como le he comentado a Leandro

    no se como pasarlo al programa. Mi nivel es bajo pero quiero ver como funciona los delegados. ¿cuál es el equivalente de  _e()en la rutina que me arroja el error?

    Un saludo

    jueves, 11 de enero de 2018 9:25

Todas las respuestas

  • Hola IsidroPadilla

    De acuerdo a tu consulta, te voy a compartir el siguiente enlace(en inglés) donde viene un problema similar al tuyo y dentro de este hay mas enlaces de como poder solucionarlo.

    https://docs.microsoft.com/en-us/dotnet/csharp/misc/cs0079

    Los enlaces que se presentan son sobre Events y Delegates.

    Quedamos al pendiente de  cualquier actualización de tu parte.

    Saludos Cordiales.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     _____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 10 de enero de 2018 16:44
    Moderador
  • hola

    de donde obtuviste ese codigo ?

    add (C# Reference)

    si te fijas en el ejemplo usa el += y -= en el add y remove

    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);
    	}
    }

    quizas sea ese el problema

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 10 de enero de 2018 19:40
  • Hola Lenadro, ante todo muchas gracias por tu respuesta. Si ya lo ne visto el enlace que me ofreces

    y e visto que el problema está aquí:

    public void Fire() { if (_e != null) { Pow(); // CS0079 // try the following line instead // _e(); } }

    pero no se como lo tengo que transformar la rutina para que funciones. Mi nivel en CSharp 

    deja mucho que desear. Estoy aprendiendo y he visto que una buena forma para el autodidacta

    es la descompilación. 

    El código procee de una descompilación de un programa de código líbre lamago GrayWolf pero

    lo que ofrece el descompilador ILSpy es muy distinto del código fuente y quiero saber como

    funciona el tema de los delegados.

    Si tienes razón en esto:

    si te fijas en el ejemplo usa el += y -= en el add y remove

    Pero eso ya está corregido. 

    El problema lo tengo en que no se cual es el equivalente de _e(); en la clase que contiene esta rutina.

    He visto otros muchos ejemploas similares, pero no llego a comprender como

    tengo que realizar el cambio.

    Si me puedes ayudar te lo agradeceré.

    Por supuesto no se trata de una descompilación con malas intenciones, ni mucho menos.

    Un saludo Leandro y gracias que ya me has ayudado más de una vez.

    jueves, 11 de enero de 2018 9:17
  • Hola Pablo, muchas gracias por tu ayuda. Ya lo había visto ese elace, pero es que como le he comentado a Leandro

    no se como pasarlo al programa. Mi nivel es bajo pero quiero ver como funciona los delegados. ¿cuál es el equivalente de  _e()en la rutina que me arroja el error?

    Un saludo

    jueves, 11 de enero de 2018 9:25
  • Hi, nobody know to avoid this errorr?
    sábado, 13 de enero de 2018 18:13