2010-02-03 30 views
6

¿Alguien conoce herramientas para ver el código generado por el compilador C# para delegado?herramienta para ver el código generado por el compilador

Quiero verificar lo siguiente

class X 
{ 
    public event D Ev; 
} 

que se compila a:

class X 
{ 
    private D __Ev; // field to hold the delegate 

    public event D Ev { 
      add { 
       lock(this) { __Ev = __Ev + value; } 
      } 

      remove { 
       lock(this) { __Ev = __Ev – value; } 
      } 
    } 
} 
+1

'delegate' es una palabra clave, no una función. ¿Qué código quieres ver? – recursive

+7

Debe aceptar respuestas para sus preguntas. – SLaks

+2

Tenga en cuenta que hemos cambiado ligeramente el codegen para eventos en C# 4. Es posible que * desconfirme * ese codegen. –

Respuesta

6

Su pregunta no tiene sentido, pero es probable que estés buscando Reflector.

EDIT: Ahora, su pregunta tiene sentido. Todavía estás buscando Reflector.
Sin embargo, deberá configurar la Optimización como Ninguna en las opciones.

Revela,

private EventHandler<MyEventArgs> MyEvent; 
public event EventHandler<MyEventArgs> MyEvent 
{ 
    [MethodImpl(MethodImplOptions.Synchronized)] add 
    { 
     this.MyEvent = (EventHandler<MyEventArgs>) Delegate.Combine(this.MyEvent, value); 
     return; 
    } 
    [MethodImpl(MethodImplOptions.Synchronized)] remove 
    { 
     this.MyEvent = (EventHandler<MyEventArgs>) Delegate.Remove(this.MyEvent, value); 
     return; 
    } 
} 
0

reflector fue comprado por Redgate y ahora es un producto comercial.

Una alternativa libre es dotPeek:

https://www.jetbrains.com/decompiler/

Es un decompilador muy capaz con un montón de opciones y resultó ser tan bueno como el reflector se encontraba en el momento de la compra. No lo he usado ya que no puedo comentar sobre lo que obtienes por tu dinero.


Otra herramienta es LINQPad:

http://www.linqpad.net/

Se desmonta C# a medida que escribe (que es muy útil) y le mostrará el CIL. Sin embargo, no intentará descompilarlo nuevamente en C# por usted.

Cuestiones relacionadas