想要真正駕馭 .NET,必須從類型系統的基石——通用類型系統 (Common Type System, CTS) 入手。CTS 不僅定義了類型如何聲明、使用與管理,更是跨語言互操作、類型安全與高效能執行的基石。本文將為你梳理 CTS 的核心架構、類型分類、與 CLI/CLS/CIL 的關係,並建立起通往深層 .NET 技術的入口地圖。
.NET 的多語言無縫整合,靠的正是所有語言共享同一套類型系統。以 VB.NET 的 Single 與 C# 的 float 為例,兩者編譯後在 IL 中均映射為 float32,這就是 CTS 統一類型表示的威力。

CTS 支援兩大基本類型,形成單一繼承的層次結構:
System.ValueType,含結構、列舉、基本型別System.Object,含類別、介面、委派、陣列、string
理解這些縮寫的關係,能讓你從宏觀把握 .NET 生態:
| 術語 | 全名 | 角色定位 |
|---|---|---|
| CLI | Common Language Infrastructure | .NET 技術規範(ECMA 標準化),包含 CTS、CLS、CIL |
| CTS | Common Type System | 統一類型系統,跨語言互操作基石 |
| CLS | Common Language Specification | CTS 子集,語言編譯器必須遵守的最小規範 |
| CIL | Common Intermediate Language | 基於堆疊的中間語言(IL),JIT 編譯為機器碼 |
| CLR | Common Language Runtime | 執行引擎,管理代碼執行、提供 CTS 與基礎服務 |
| FCL | Framework Class Library | 標準類庫,以命名空間組織,根為 System |

System.Objectis/as、強制轉型 (T)obj、Convert 類、Parse 方法using MyAlias = Namespace.Type;,int 即 System.Int32 別名obj.GetType()(執行時)、typeof(TypeName)(編譯時/反射)CLSCompliantAttribute 標記組件/類型是否符合 CLS/checked+、C# checked/unchecked類型系統看似基礎,實則牽一髮而動全身——異常、效能損耗、冗餘設計多源於對類型理解不透。本系列將以 CTS 為起點,層層深入探討值/引用類型、裝箱拆箱、強類型等核心主題,打開通往 .NET 深層次的大門。