1.在講解 C# 程序的編譯與執行之前,首先了解以下兩個概念,以便充分理解C# 程序的運行。
CLI--Common Language Infrastructure 的簡稱,C# 程序在Microsoft .NET Framework 上運行時,
它是 Windows 的一個必要組件,包括一個稱為公共語言運行庫(CLR,在第1章中對該內容有過詳細講解)的虛擬執行系統和一組統一的類庫。
IL--Intermediate Language 的簡稱,稱為中間語言,又稱為 MSIL。所有Microsoft .NET 源代碼(使用任何語言)被編譯為 IL,
然后在軟件的安裝點上或者運行時,IL 由即時(JIT)編譯器轉換為機器碼。
圖2.1演示了C# 源文件、基類庫、程序集和 CRL 的編譯與執行過程。
第一階段--把 C# 編寫的源文件編譯為一種符合 CLI 規范的中間語言(IL)。IL 代碼與資源(如位圖和字符串)一起作為一種稱為
程序集的可執行文件存儲在磁盤上,通常具有的擴展名為 .exe 或 .dll。
第二階段--執行 C# 程序時,程序集將加載到 CLR 中,這可能會根據清單中的信息執行不同的操作。如果符合安全要求,
CLR 執行即時(JIT)編譯以將 IL 代碼轉換為本機機器語言。CLR 還提供與自動垃圾回收、異常處理和資源管理有關的其他服務。
由 CLR 執行的代碼有時稱為"托管代碼",它與編譯為面向特定系統的本機機器語言的"非托管代碼"相對應。