可以在MSIL中编码吗?

时间:2009-09-08 23:39:42

标签: .net cil il

我很想知道是否可以这样做。如果它没有包含一些重要的性能优势,我不打算这样做。我是网络和游戏开发者,但我通常不用c#开发游戏。

4 个答案:

答案 0 :(得分:14)

是的,有可能 - 您可以使用ilasm(.NET SDK附带)来编译代码。但是,在Visual Studio中没有IDE支持。您可以从中获得的任何性能优势都是您无法通过其他方式获得的 - 特别是,C ++ / CLI涵盖了所有可能提供某些好处并且无法通过C#或VB访问的低级CLR功能 - 最值得注意的是,无复制(ref)拆箱,普通无界函数指针(与委托相对)和关联的calli IL指令,以及ref(CLI用语中的托管指针)局部变量(而不仅仅是参数)。

答案 1 :(得分:1)

是的,你可以;来自.NET SDK的Microsoft's MSIL Assembler(ilasm.exe)会将您的IL编译为可执行代码。我没有任何理由这样做,除非在非常专注的领域,你已经发现了可以获得的实质性的好处。

这是一个详细的,如果注明日期,article描述了如何做到这一点。

答案 2 :(得分:0)

或者您可以从C#中发出一点CIL。 Feeding an object literal to ILGenerator

答案 3 :(得分:0)

#Develop(Sharp Develop)IDE有一个il项目插件。我没有用它,所以我不确定它提供了多少帮助。 http://www.icsharpcode.net/OpenSource/SD/