C# .NET及Mono跨平台实现原理解析
作者:Fflyqaq
这篇文章主要介绍了C# .NET及Mono、跨平台实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一、.NET是什么
.NET是微软搭建的开发者平台,主要包括:
1.支持(面向)该平台的编程语言(如C#、Visual Basic、C++/CLI、F#、IronPython、IronRuby...),
2.用于该平台下开发人员的技术框架体系(.NET Framework、.NET Core、Mono、UWP等),
- 1.定义了通用类型系统,庞大的CTS体系
- 2.用于支撑.NET下的语言运行时的环境:CLR
- 3..NET体系技术的框架库FCL
- 3.用于支持开发人员开发的软件工具(即SDK,如VS2017、VS Code等)
二、Mono是什么
微软的.NET框架本身只能在windows上运行,对于跨平台的需求,Mono就产生了。
- Mono是.NET的一个开源跨平台工具,可以实现跨平台运行。
- Mono作为.NET框架在不同平台上的重要补充,Mono也被Unity所引用。
三、Unity是如何实现跨平台的
因为Unity使用了叫CIL(通用中间语言)的代码指令集。CIL可以在任何支持CLI(通用语言基础结构)的环境中运行。
Unity代码的编译分为两部分:
- 从代码到CIL的编译
- 运行时从CIL到本地指令的即时编译(不包括IOS,因为IOS无法使用JIT引擎)
Unity打包时会将mono一同打包进来,同时Unity将脚本编译为CIL代码打包,这样只要是Mono支持的平台,都可以在Mono中编译成平台本地代码。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。