我计划获得对用C#编写的.NET系统的继承使用情况的一些见解。我想分析中间语言代码而不是C#代码,以便也可以查看编译代码。有没有关于在启用优化代码标志时C#编译器可以执行哪些优化的信息?
我正在分析与继承图相关的调用行为(例如,使用多态,从基类重用方法等)。
互联网上的大多数问题和资源都表示“次要优化”和其他含糊不清的事情。我需要具体了解编译发布模式时可能发生的语义变化。我对代码的性能不感兴趣。
例如,Scott Hanselman在his blog中发布方法内联将在发布模式下发生。但这只是一个例子。这意味着What is /optimize C# compiler key intended for? 没有回答我的问题。
答案 0 :(得分:1)
http://blogs.msdn.com/b/ericlippert/archive/2009/06/11/what-does-the-optimize-switch-do.aspx
Eric Lippert(C#编译团队的前主要开发人员)在他的博客上回答了这个问题。一些评论:
A(B(C(D)))
重写为A(D)
); 整个博客还有更多示例,如果您想了解这一点,我建议您阅读。