工具查看编译器生成的代码

Sou*_*uth 6 c#

有没有人知道查看C#编译器生成的委托代码的工具?

我想验证以下内容

class X
{
     public event D Ev;
}
Run Code Online (Sandbox Code Playgroud)

编译为:

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; }
           }
     }
}
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 6

你的问题毫无意义,但你可能正在寻找Reflector.

编辑:现在,你的问题确实有意义.你还在寻找Reflector.
但是,您需要在选项中将优化设置为无.

它揭示了,

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;
    }
}
Run Code Online (Sandbox Code Playgroud)