关 于 C #装 箱 与拆箱 的理解 NET 重 要 技 术 和 基 础 之 一 的 CTS(Common Type System)。 顾 名 思 义 , CTS 就 是 为 了 实现 在 应 用 程 序 声 明 和 使 用 这 些 类 型 时 必 须 遵 循 的 规 则 而 存 在 的 通 用 类 型 系 统 。.Net 将 整 个 系统 的 类 型 分 成 两 大 类 ——Value Type 和 Reference Type。。, 多数的OO 语言存 在 这 个 弱点,原因就 是 因为 他们的 原类 型 没有共同的 基 点,于是 他们在 本质上并不是 真正的 对象 C++更依赖于对象, 而 非面向对象。 .Net 环境的 CTS 给我们带来了 方便。 第一 、CTS 中的 所有东西都是 对象;第二、所有的 对象都源自一 个 基 类 ——System.Object 类 型 。 这 就 是 所谓的 单根层次结构(singly rooted hierarchy)关于 System.Object 的 详细资料请参考微软的 技 术 文档。CTS Value Type 的 一 个 最大 的 特点是 它们不能为 null, Value Type 的 变 量 总 有一 个 值 。 在 传递 Value Type 的 变 量 时 , 实 际 传 递 的 是 变 量 的 值 , 而 非底 层对象的 “引用 ”。 CTS Reference Type 就 好像是 类 型 安全的 指针, 它可以为null。 当值 为null 时 , 说明 没有引用 或类 型 指向某个 对象。 声 明 一 个 引用 类 型 的 变 量 时 , 被操作的 是 此变 量 的 引用 (地址), 而 不是 数据。 1、 装箱和 拆箱是 一 个 抽象的 概念 2、 装箱是 将 值 类 型 转换为 引用 类 型 ;拆箱是 将 引用 类 型 转换为 值 类 型 利用 装箱和 拆箱功能, 可通 过允许值 类 型 的 任何值 与 Object 类 型 的 值 相互转换, 将值 类 型 与引用 类 型 链接起来 例如: int val = 100; object obj = val; Console.WriteLine (“对象的 值 = {0}", obj); 这 是 一 个 装箱的 过程 , 是 将 值 类 型 转换为 引用 类 型 的 过程 int val = 100; object obj = val; int num = (int) obj; Console.WriteLine ("num: {0}", num); 这 是 一 个 拆 箱 的 过 程 , 是 将 值 类 型 转 换 为 引 用 类 型 , 再 由...