通用類型系統定義了運行期引擎如果使用程式中的數據類型,以及如何配置數據在存儲器中的一種標準,依照此種標準所撰寫的程式語言,都可以在同一個運行期引擎中使用,因此它是跨語言支持的重要部分,亦即匹配 CTS 規範的程式語言所撰寫出的程式,都可以在 CLR 中使用。
基本介紹
- 中文名:通用類型系統
- 外文名:Common Type System
- 縮寫:CTS
簡介
CTS 的功能
- 創建一個可協助跨語言集成、類型安全與代碼的高性能運行的框架規範。
- 提供可在許多程式語言中完全實現的面向對象模型。
- 定義程式語言必須遵行,以幫助在不同的程式語言中所實現的對象能夠與其他程式語言互動的規則。
- CTS 也定義了確保由不同程式語言所定義的數據類型能與其他程式語言互動的規則。
CTS 的類型
- 實值類型直接包含數據,而且實值類型的運行個體 (Instance) 不是在堆疊上配置,就是在結構中內嵌 (Inline) 配置。實值類型可為內置 (由運行階段實現)、用戶定義或枚舉類型 (Enumeration)。
- 存儲變數存儲器地址的引用,並且在堆積 (Heap) 上配置。引用類型可為自我描述類型、指針類型 (Pointer Type) 或接口類型 (Interface Type)。引用類型的類型可從自我描述類型的值判斷出來。自我描述類型可再分為數組和類別類型。類別類型包括用戶定義類型、Boxed 實值類型和委派。
Boxing 與 Unboxing
Boxing
Int32 x = 10; object o = x ; // 隱含打包Console.WriteLine("The Object o = {0}",o); // prints out 10
Int32 x = 10; object o = (object) x; // 外顯打包(明確指定)Console.WriteLine("The object o = {0}",o); // prints out 10
Unboxing
Int32 x = 5; object o = x; // 隱含打包x = o; // 隱含解包