.NET 類型系統以 System.Object 為根,分支為值型別與參考型別,結構清晰、符合面向對象自然演化規律(太極生兩儀、兩儀生四象…),具備架構清晰、跨語言通用、錯誤易檢測、擴展性強等優勢。

所有型別繼承 System.Object(C# 對應 object),共享核心方法:
ToString()、Equals()、GetHashCode()、GetType()、MemberwiseClone()(protected 淺拷貝)。Equals(objA, objB)、ReferenceEquals(objA, objB)。Finalize()(GC 回收前呼叫,開銷大,建議改實作 IDisposable)。語言關鍵字(int、string 等)僅為框架型別(System.Int32、System.String)的別名,編譯前已在 MSIL 轉換,零效能損失。
32 位元程序擁有 4GB 虛擬位址空間:
值型別(int、struct、enum、decimal 等)直接存放於執行緒堆疊,生命週期嚴格限定於程式碼區塊({ }),離開區塊自動釋放。使用 unsafe 指標可觀察其連續、依型別大小分配的記憶體佈局。
int a = 1; // 4 bytes
byte b = 2; // 1 byte
decimal c = 3m; // 16 bytes
bool d = true; // 1 byte (通常對齊至 4 bytes)
也可用 ref/out 延伸作用域。
new 操作三步驟:
值型別也可用 new(呼叫建構函式),但不在堆上分配。參考型別必須 new 才能在堆上建立實例。
GC 定期掃描堆疊參考,回收不可達物件,解決記憶體洩漏。
理解 CTS 階層、Object 核心契約、堆疊與堆的分工與交互,是掌握 .NET 型別轉換、效能優化、記憶體診斷的基石。