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

标签 c#

有人知道查看 C# 编译器为委托(delegate)生成的代码的工具吗?

我要验证以下内容

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 .

编辑:现在,您的问题确实有道理。你还在找 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/

相关文章:

c# - DataGridViewSelectedCellCollection 上的 LINQ 查询

c# - C#处理集合中项目的优雅方法

c# - Excel 加载项 (C#) - 如何处理用户设置?

c# - 处理后退导航 Windows 10 (UWP)

c# - 将对象序列化为字符串 : why is my encoding adding stupid characters?

c# - 为什么结构需要装箱?

c# - 如何在 C# 中追加 xml 文件?

c# - 通过 C# 应用程序接收电子邮件和下载附件

c# - 使用 UWP 通过拖放重新排序可绑定(bind) ListView

c# - 在运行 T4 模板以在解决方案中包含程序集时确定解决方案配置(调试/发布)