Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么C#.NET需要在CLR中编译?_.net_Windows_Clr - Fatal编程技术网

为什么C#.NET需要在CLR中编译?

为什么C#.NET需要在CLR中编译?,.net,windows,clr,.net,Windows,Clr,我知道JAVA需要用中间语言编译,因为它的虚拟机可以在每个操作系统上运行。但据我所知,CLR只在Windows上运行。那么为什么它需要虚拟机呢?这仅仅是性能问题吗?理论上,CLR可以在任何具有运行CLR的虚拟机的平台上运行。例如,可以用来在Linux上运行CLR代码。像C#这样的托管语言也会被编译成中间语言,就像Java一样。而且还需要一个VM来执行,就像Java一样。还有一些.NET虚拟机运行在其他操作系统上,就像Java一样。Mono是一款众所周知的产品。Net Core 5将在Window

我知道JAVA需要用中间语言编译,因为它的虚拟机可以在每个操作系统上运行。但据我所知,CLR只在Windows上运行。那么为什么它需要虚拟机呢?这仅仅是性能问题吗?

理论上,CLR可以在任何具有运行CLR的虚拟机的平台上运行。例如,可以用来在Linux上运行CLR代码。

像C#这样的托管语言也会被编译成中间语言,就像Java一样。而且还需要一个VM来执行,就像Java一样。还有一些.NET虚拟机运行在其他操作系统上,就像Java一样。Mono是一款众所周知的产品。Net Core 5将在Windows、Linux和Mac上运行: