2008-09-30 72 views

回答

5

学习它的最好方法是编写你理解的东西,然后看看它创建的IL。另外,根据你在做什么,你可以使用表达式树来代替发送IL,然后当你编译表达式树时,那些微软的聪明人会为ya创建IL。

+0

表达树FTW! 没想过!谢谢! – TheSoftwareJedi 2008-09-30 23:05:48

5

.NET Reflector非常适用于检查由C#/ VB.NET生成的IL。

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

+0

我一直在使用它,但将它反编译为C# - 非常好的建议,谢谢! – TheSoftwareJedi 2008-09-30 23:02:07

5

的ECMA 335规范可在这里下载: http://www.ecma-international.org/publications/standards/Ecma-335.htm

分区III是最相关的处理MSIL,但我强烈建议分区我以及任何.NET开发人员,因为它会大大巩固了对该平台的理解。

+0

我想提一下,在过去的几周里,我也想深入研究.Net的碗,并了解CIL代码。我能找到的最好的文档是规范。不幸的是,我还没有找到一个坚实的“自学CIL”网站,该网站有足够的信息来熟练掌握MSIL。如果你想要硬记录,规范似乎是最好的去处。 – RLH 2015-03-13 11:24:54

6

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