有人知道查看C编译器为委托生成的代码的工具吗?
我想核实一下

class X
{
     public event D Ev;
}

它被编译为:
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; }
           }
     }
}

最佳答案

你的问题毫无意义,但你可能在寻找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;
    }
}

关于c# - 查看编译器生成的代码的工具,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2189342/

10-11 11:46