C# 学习CIL(MSIL)的最佳资源是什么

C# 学习CIL(MSIL)的最佳资源是什么,c#,.net,code-generation,cil,C#,.net,Code Generation,Cil,我是一名C#3/.NET3.5程序员,希望开始使用System.Reflection.Emit.DynamicMethod执行一些运行时代码生成。我很想通过熟悉IL来提升到下一个层次 任何提示(双关语)?学习它的最好方法是写一些你理解的东西,然后看看它创建的IL。此外,根据您所做的工作,您可以使用表达式树而不是发出IL,然后当您编译表达式树时,microsoft的那些聪明人会为您创建IL。虽然这本书现在可能有点过时,但对我来说仍然是一个很好的概述。非常适合检查C#/VB.NET生成的IL 这是一

我是一名C#3/.NET3.5程序员,希望开始使用System.Reflection.Emit.DynamicMethod执行一些运行时代码生成。我很想通过熟悉IL来提升到下一个层次


任何提示(双关语)?

学习它的最好方法是写一些你理解的东西,然后看看它创建的IL。此外,根据您所做的工作,您可以使用表达式树而不是发出IL,然后当您编译表达式树时,microsoft的那些聪明人会为您创建IL。

虽然这本书现在可能有点过时,但对我来说仍然是一个很好的概述。

非常适合检查C#/VB.NET生成的IL


这是一个很棒的学习工具。

ECMA 335规范可在此处免费下载:


分区III与处理MSIL最相关,但我强烈建议任何.NET开发人员也使用分区I,因为它将极大地巩固对平台的理解。

除了Darren的答案之外,我建议选择或发明一种玩具语言,并为其编写一个简单的编译器。选择一些不需要解析的东西,比如BF或基于堆栈的语言,你会发现编写编译器实际上比看起来要简单。

我一直都在使用它,但让它反编译到C#-非常好的建议,谢谢!表达树FTW!我没想过!谢谢我想提到的是,在过去的几周里,我也希望深入挖掘.Net的知识,学习CIL代码。我能找到的最好的文档是规范。不幸的是,我还没有找到一个可靠的“自学CIL”网站,它有足够的信息来精通MSIL。如果您想要硬文档,规范似乎是最好的选择。