2012-03-20 44 views
2

我在捉对IL代编程一个短的例子,其包括:如何了解ILGenerator编程?

  • 一个返回值
  • 分支上的空测试
  • 与功能分配给一个临时变量或具有方法作为参数返回到另一个方法

如果有一个带有示例的资源+逐行解释发生了什么,那将会很棒。

VS 2010是否有助于跟踪il级别?

我可以张贴一些不完整的例子

回答

4

一个简单的方法来了解IL是写在例如代码C#并查看生成的IL。这样你可以很容易地看到各种代码结构映射到什么地方。关于这个问题的好书,我推荐Expert .NET IL Assembler

+0

ty。我会看看。目前在.net书籍世界看起来活动较少。希望这并不意味着.net平台会发生什么。 – sgtz 2012-03-20 18:31:41

+0

MS上的一些不错的文档http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(SYSTEM.REFLECTION.EMIT.OPCODES.CALLVIRT); k(CALLVIRT); k( TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22); k(DevLang-CSHARP)&rd = true – sgtz 2012-03-20 21:13:14

+0

@sgtz:对不起,我假设你已经对MSDN有所了解。 – 2012-03-20 21:21:29

1

一个好办法是编写C#代码,然后在你的目录中使用ILSpy在IL级别进行调试。你可以看看生成的IL,但是如果你很难弄清楚发生了什么事情,那么能够通过它就能够产生启发。

+0

是IL Spy的独立工具,还是它也可以作为插件使用?现在就玩吧。 – sgtz 2012-03-20 18:26:56

+0

这是一个独立的工具,如果这就是你想要的,在Visual Studio中运行它是不可能的。 – hvd 2012-03-20 18:37:00