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



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

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

No.

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

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

C# 编译是通过以下两个步骤完成的:

1. Conversion from C# to CIL by the C# compiler
2. Conversion from CIL to instructions that the processor can execute.

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

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

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

C# 代码编译为 MSIL。 它喜欢Java字节码。 MSIL 将在运行时转换为计算机。

C#

代码编译为 MSIL,MSIL 由 .NET CLR负责<</p>

div class="ans>

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

相关内容

  • 没有找到相关文章

最新更新