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

Why does C# .NET need to be compiled in CLR?

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

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