C# .NET及Mono跨平臺實現(xiàn)原理解析
一、.NET是什么
.NET是微軟搭建的開發(fā)者平臺,主要包括:
1.支持(面向)該平臺的編程語言(如C#、Visual Basic、C++/CLI、F#、IronPython、IronRuby...),
2.用于該平臺下開發(fā)人員的技術(shù)框架體系(.NET Framework、.NET Core、Mono、UWP等),
- 1.定義了通用類型系統(tǒng),龐大的CTS體系
- 2.用于支撐.NET下的語言運行時的環(huán)境:CLR
- 3..NET體系技術(shù)的框架庫FCL
- 3.用于支持開發(fā)人員開發(fā)的軟件工具(即SDK,如VS2017、VS Code等)
二、Mono是什么
微軟的.NET框架本身只能在windows上運行,對于跨平臺的需求,Mono就產(chǎn)生了。
- Mono是.NET的一個開源跨平臺工具,可以實現(xiàn)跨平臺運行。
- Mono作為.NET框架在不同平臺上的重要補充,Mono也被Unity所引用。
三、Unity是如何實現(xiàn)跨平臺的
因為Unity使用了叫CIL(通用中間語言)的代碼指令集。CIL可以在任何支持CLI(通用語言基礎(chǔ)結(jié)構(gòu))的環(huán)境中運行。
Unity代碼的編譯分為兩部分:
- 從代碼到CIL的編譯
- 運行時從CIL到本地指令的即時編譯(不包括IOS,因為IOS無法使用JIT引擎)
Unity打包時會將mono一同打包進來,同時Unity將腳本編譯為CIL代碼打包,這樣只要是Mono支持的平臺,都可以在Mono中編譯成平臺本地代碼。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
unity中實現(xiàn)Edge瀏覽器鼠標手勢的功能思路詳解
這篇文章主要介紹了unity中實現(xiàn)Edge瀏覽器鼠標手勢的功能思路詳解,實現(xiàn)起來其實并不復(fù)雜,涉及的技術(shù)點有pc端和移動端屏幕拖動事件,二維向量的相關(guān)運算,手勢匹配算法,事件系統(tǒng)設(shè)計模式,需要的朋友可以參考下2023-12-12C#基礎(chǔ):基于const與readonly的深入研究
本篇文章是對c#中const與readonly進行了詳細的分析介紹,需要的朋友參考下2013-05-05C#(.net)中按字節(jié)數(shù)截取字符串最后出現(xiàn)亂碼問題的解決
這篇文章主要給大家介紹了關(guān)于C#(.net)中按字節(jié)數(shù)截取字符串最后出現(xiàn)亂碼問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06C#中datagridview使用tooltip控件顯示單元格內(nèi)容的方法
這篇文章主要介紹了C#中datagridview使用tooltip控件顯示單元格內(nèi)容的方法,實例分析了C#控件的相關(guān)使用技巧,需要的朋友可以參考下2016-06-06