首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 與 .NET 關係解析:CLR、IL 與托管執行模型全景圖

     編輯:關於C#

一、語言與平台的分工

C# 是獨立語言,專為 .NET 環境設計,但 不屬於 .NET Framework 一部分。關係如下:

  • C# 程式碼 永遠運行於 .NET Framework/CLR 之上
  • 語言特定功能常依賴基礎類別庫(如 int 實為 System.Int32 結構實例)

二、核心執行引擎:CLR

Common Language Runtime (CLR) 是 .NET 的核心,提供:

  • 記憶體管理(自動 GC)
  • 型別安全驗證
  • 例外處理、執行緒同步、安全性審查
  • 在 CLR 執行的程式碼稱為 托管程式碼

三、雙階段編譯流程

  1. 原始碼 → IL (中繼語言):C#/VB.NET/F# 編譯器產生平台中立的 IL(類似 Java bytecode)
  2. IL → 原生機器碼:CLR 的 JIT (Just-In-Time) 編譯器在執行時將 IL 編譯為目標平台機器碼

優勢:

  • 跨語言互操作:不同語言編譯為相同 IL,型別系統統一,無縫呼叫
  • 平台無關性:只要目標裝置有 CLR 實作,同一組 IL 即可運行

四、IL 關鍵特性

特性說明
物件導向與介面支援類別、介面、繼承、多型
值/參考型別區分堆疊 vs 堆積,語意明確
強型別所有變數皆有明確型別,拒絕模糊型別
例外處理統一 try/catch/finally 機制
屬性中繼資料標記,驅動反射與工具

五、關於 var 的補充

.NET 3.5 / C# 3.0 引入 var 隱含型別區域變數,編譯期仍推斷為強型別,非動態語言的模糊型別,僅簡化冗長泛型宣告(如 var dict = new Dictionary>();)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved