在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C#/ .NET Core代碼執(zhí)行
.NET Core添加對庫的引用
.NET Core包的引用
.NET Core入門程序
.NET Core可移植類庫
.NET Core項目文件
.NET Core創(chuàng)建UWP應用程序
.NET Core代碼執(zhí)行
.NET Core模塊化
.NET Core簡介
.NET Core教程
.NET Core數(shù)字
.NET Core垃圾收集
.NET Core必備條件
.NET Core MSBuild
.NET Core創(chuàng)建.NET標準庫
.NET Core開發(fā)環(huán)境設置
.NET Core元數(shù)據(jù)包
.Windows運行時和擴展SDK

.NET Core代碼執(zhí)行

在本章中,我們將了解.NET Core的執(zhí)行過程,并將其與.NET Framework進行比較。被管理的執(zhí)行過程包括以下步驟。

  • 選擇一個編譯器
  • 編譯代碼成MSIL
  • 將MSIL編譯為本地代碼
  • 運行代碼

注:感覺有點像Java的機制了。

參考下圖中的流程 -

1. 選擇一個編譯器

  • 它是一個多語言執(zhí)行環(huán)境,運行時支持各種數(shù)據(jù)類型和語言功能。
  • 要獲得公共語言運行時提供的好處,必須使用一個或多個定位運行時的語言編譯器。

2. 編譯代碼成MSIL

  • 編譯將您的源代碼翻譯成Microsoft中間語言(MSIL)并生成所需的元數(shù)據(jù)。
  • 元數(shù)據(jù)描述了代碼中的類型,包括每種類型的定義,每種類型成員的簽名,代碼引用的成員以及運行時在執(zhí)行時使用的其他數(shù)據(jù)。
  • 運行時在執(zhí)行過程中根據(jù)需要從文件以及框架類庫(FCL)中查找和提取元數(shù)據(jù)。

3. 將MSIL編譯為本地代碼

  • 在執(zhí)行時,即時(JIT)編譯器將MSIL轉換為本地代碼。
  • 在編譯期間,代碼必須通過驗證過程,檢查MSIL和元數(shù)據(jù),以確定代碼是否可以被確定為類型安全的。

4. 運行代碼

  • 公共語言運行庫提供了執(zhí)行過程的基礎結構和執(zhí)行過程中可以使用的服務。
  • 在執(zhí)行期間,托管代碼接收垃圾收集,安全性,與非托管代碼的互操作性,跨語言調試支持以及增強的部署和版本支持等服務。

.NET Core代碼執(zhí)行過程

現(xiàn)在來看看一下如何使用.NET Core與.NET Framework進行代碼執(zhí)行。在.NET Core中,這些組件的很多替代品都是.NET Framework的一部分。執(zhí)行流程圖如下所示 -

  • 現(xiàn)在在.NET Core中,我們有了一個新的編譯器系列,就像用于 C# 和VB的Roslyn一樣。
  • 如果想在.NET Core中使用F#,也可以使用新的F# 4.1編譯器。
  • 實際上,這些工具是不同的,如果使用C# 6或更高版本,也可以使用Roslyn和.NET Framework,因為C#編譯器最多只能支持C# 5。
  • 在.NET Core中,沒有框架類庫(FCL),所以使用了一組不同的庫,現(xiàn)在有了CoreFx。
  • CoreFx是.NET Core的類庫的重新實現(xiàn)。
  • 也有一個新的運行時間與.NET Core CoreCLR,并利用JIT編譯器。