<From C++ To C#> 全新的运行方式
我们用C++编程的时候,编译器直接把C++编译成机器语言或者机器相关的编译语言。而这样的文件是可以直接被操作系统识别,运行的。
那么,如果我希望相同的代码运行在不同的操作系统上呢?那就需要有不同的编译器,把代码编译成符合不同操作系统识别的可执行文件。
C#编写的程序运行的方式则完全不同。我们都知道C#编写的程序运行,Windows需要装.NET Framework.它的运行方式是这样的。
那么如果需要把C#写的代码运行在不同操作系统上,应该如何呢?
这里我们可以看出,在C++时期,相同的代码,为了让用户可以在不同的操作系统上运行,我们需要用户用不同的编译器编译代码。也就是说,为了达到通用性,我们不得不分发代码。
而在C#时期,代码通过编译器编译的中间文件都是相同的,不同的用户在不同的操作系统上配置相应的Framework就可以运行同一份中间文件。这就是.NET Framework的跨平台性。
除此之外,不同的微软语言通过编译器可以编译出相同的中间语言,也就是说程序员可以用自己熟悉的语言编译出效率相等的程序来。
这就是.NET FrameWork的跨语言性。
由于C#是微软创造的,他们并不推荐大家使用Windows以外的操作系统。所以微软对.net framework的跨平台性一笔带过,反之大力宣扬它的跨语言性。