Share via


編譯為 MSIL

編譯為 Managed 程式碼時,編譯器會將您的原始程式碼轉譯成 Microsoft Intermediate Language (MSIL),它是可以有效率地轉換為機器碼而與 CPU 無關的指令集。MSIL 包括可用來載入、儲存、初始化和呼叫物件上方法的指令,以及用於數學和邏輯作業、控制流程、直接記憶體存取、例外處理和其他作業的指令。在程式碼可以執行之前,必須將 MSIL 轉換為 CPU 特定程式碼,而此轉換通常是藉 Just-In-Time (JIT) 編譯器進行。由於 Common Language Runtime 會為其支援的每一個電腦架構提供一或多個 JIT 編譯器,因此相同的 MSIL 集可以在任何受支援的架構上進行 JIT 編譯並執行。

當編譯器產生 MSIL 時,它也會產生中繼資料。中繼資料描述您程式碼中的型別,包括各個型別的定義、各個型別成員的簽章 (Signature)、您的程式碼參考的成員,和 Runtime 在執行期間使用的其他資料。MSIL 和中繼資料是包含在可移植執行檔 (PE) 中,這個檔案會根據並擴充已發佈的 Microsoft PE,以及記錄上供可執行檔內容使用的通用物件檔案格式 (COFF)。這個檔案格式 (適用於 MSIL 或機器碼以及中繼資料) 使作業系統能夠辨認 Common Language Runtime 影像。檔案內中繼資料的存在連同 MSIL 讓您的程式碼能夠描述它自己,意即不需要型別程式庫或介面定義語言 (IDL)。Runtime 會依需要在執行期間從檔案找出並擷取中繼資料。

請參閱

參考

MSIL 組譯工具 (Ilasm.exe)

概念

Managed 執行程序

其他資源

中繼資料和自我描述元件