.Net采用特殊的方式编译和执行程序,先通过即时编译器编译,程序会被编译成微软中介语言MSIL(Microsoft Intermediate Language)文件,MSIL将来被启动时会启动MSIL编译器,将MSIL编译成机器码,然后加载CPU执行。
其工作原理如下图所示:
上面所提到的微软中介语言是由微软所制定,是CLR的组合语言。它没有针对某个作业系统才有特定的指令,而是必须使用即时编译器编译成特定平台的原生码后才能够执行,但是编译成原生码之后的执行,仍被CLR管理。这里需要强调的是所有.net程式语言编译器的目标格式皆为MSIL,它可以执行跨语言呼叫及继承,也就是说哪种语言都不是重点,重点是此编译器的能力。另外它还可跨平台使用。