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框架在不同平臺上的重要補(bǔ)充,Mono也被Unity所引用。
三、Unity是如何實現(xiàn)跨平臺的
因為Unity使用了叫CIL(通用中間語言)的代碼指令集。CIL可以在任何支持CLI(通用語言基礎(chǔ)結(jié)構(gòu))的環(huán)境中運行。
Unity代碼的編譯分為兩部分:
- 從代碼到CIL的編譯
- 運行時從CIL到本地指令的即時編譯(不包括IOS,因為IOS無法使用JIT引擎)
Unity打包時會將mono一同打包進(jìn)來,同時Unity將腳本編譯為CIL代碼打包,這樣只要是Mono支持的平臺,都可以在Mono中編譯成平臺本地代碼。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#調(diào)用C++的dll兩種實現(xiàn)方式(托管與非托管)
這篇文章主要介紹了C#調(diào)用C++的dll兩種實現(xiàn)方式(托管與非托管),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
C#將部分Controls數(shù)據(jù)導(dǎo)入對象并存入ini中的操作方法
在Winform設(shè)計中,經(jīng)常需要將控件數(shù)據(jù)導(dǎo)出到屬性或字段中,本文詳細(xì)介紹了如何優(yōu)化這一過程,包括控件和屬性的遍歷,以及使用FieldInfo的getSet函數(shù)和Ini類庫來實現(xiàn)數(shù)據(jù)的有效存儲和轉(zhuǎn)換,感興趣的朋友跟隨小編一起看看吧2024-10-10
C#去除DataTable重復(fù)數(shù)據(jù)的三種方法
這篇文章主要介紹了C#去除DataTable重復(fù)數(shù)據(jù)的三種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
探討Object轉(zhuǎn)為String的幾種簡易形式詳解
本篇文章是對Object轉(zhuǎn)為String的幾種簡易形式進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

