如何在编译/优化后看到C#代码?

Chr*_*nte 11 .net c# compiler-construction optimization yield

yield当我从深度的C#中看到一个示例章节时,我正在阅读关键字:http://csharpindepth.com/Articles/Chapter6/IteratorBlockImplementation.aspx.

第一个代码块使用yield关键字来创建一个简单的迭代器.但是,第二个代码块在编译器使用它之后显示了这段代码.除此之外,它还将yield声明分解为状态机.

在页面上可以看到编译器修改的其他几个代码示例.

我的问题是:作者是否真的能够在编译后访问代码,或者他是否推断出它会是什么样子?

Chr*_*ris 14

你可以使用Reflector看看,这可能是你最好的选择:

http://reflector.red-gate.com


Bee*_*Guy 9

作者自己提到:

显然编译器实际上并没有生成C#,但我使用Reflector将代码反编译为C#.

在同一段中,标题为高级概述:模式是什么?

  • @SimpleCoder - 你需要能够**看到敏锐的**如果你想要**C#**,我的朋友=). (4认同)