我知道,Java代码被编译成字节码,这是由JVM执行。
什么是用C#的情况? 我注意到,在C#编写的应用程序具有.exe
扩展名是什么会建议他们是本地机器指令。 但是否真的如此?
我知道,Java代码被编译成字节码,这是由JVM执行。
什么是用C#的情况? 我注意到,在C#编写的应用程序具有.exe
扩展名是什么会建议他们是本地机器指令。 但是否真的如此?
没有。
像Java,C#编译成中间语言(MSIL叫或CIL)。
不像Java中,IL被存储在具有足够的实际EXE代码来显示一个对话框,要求用户安装.Net EXE文件。
那是什么.exe文件应该告诉你的是,该文件是可执行文件。 C#编译成字节码,就像是java,但.NET包装这在CLR可执行文件。
看看这里有更深入地了解CLR可执行http://etutorials.org/Programming/.NET+Framework+Essentials/Chapter+2.+The+Common+Language+Runtime/2.2+CLR+Executables/
C#编译在这两个步骤来完成:
1. Conversion from C# to CIL by the C# compiler
2. Conversion from CIL to instructions that the processor can execute.
A组分(只是在时间)执行在运行时此编译从CIL到机器代码
C#代码被编译成MSIL。 它喜欢Java字节码。 MSIL将转换成机器isntrctions在运行时。
C#代码被编译成MSIL,MSIL由.NET CLR照顾