C#代码是否已编译为本机二进制文件?

时间:2012-09-25 13:00:13

标签: c# compilation bytecode

我知道Java代码被编译成字节代码,由JVM执行。

C#是什么情况?我注意到用C#编写的应用程序具有.exe扩展名,这表示它们是本地机器指令。但它真的如此吗?

6 个答案:

答案 0 :(得分:16)

没有

与Java一样,C#被编译为中间语言(称为MSIL或CIL)。

与Java不同,IL存储在EXE文件中,这些文件具有足够的实际EXE代码,以显示一个对话框,要求用户安装.Net。

答案 1 :(得分:3)

.exe应该告诉你的是该文件是可执行的。 C#被编译成字节码,就像java一样,但是.NET将它包装在CLR可执行文件中。

请在此处深入了解CLR可执行文件http://etutorials.org/Programming/.NET+Framework+Essentials/Chapter+2.+The+Common+Language+Runtime/2.2+CLR+Executables/

答案 2 :(得分:2)

C#编译完成以下两个步骤:

1. Conversion from C# to CIL by the C# compiler

2. Conversion from CIL to instructions that the processor can execute.

组件(及时)在运行时从CIL到机器代码执行此编译

答案 3 :(得分:1)

c#代码编译为MSIL。它喜欢java字节码。 msil将在运行时转换为机器isntrctions。

答案 4 :(得分:1)

C#代码编译为MSIL,MSIL由.NET CLR编译

答案 5 :(得分:0)

还有一个项目允许将C#编译为独立的二进制可执行文件:Django docs

相关问题