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

问题描述 投票:13回答:6

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

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

c# compilation bytecode
6个回答
19
投票

编号

类似于Java,C#被编译为中间语言(称为MSIL或CIL)。

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


4
投票

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

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

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

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


4
投票

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

请看这里,更深入地了解CLR可执行文件http://etutorials.org/Programming/.NET+Framework+Essentials/Chapter+2.+The+Common+Language+Runtime/2.2+CLR+Executables/


2
投票

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


2
投票

C#代码已编译为MSIL,.NET CLR会注意MSIL


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.