09 C# 第八章 值类型 ------ 装箱操作和枚举的使用

本文详细介绍了C#中的装箱操作,包括值类型与引用类型的转换,并探讨了枚举的多种用法,如通过数组实现不同枚举类型的转换以及枚举作为标志的复合属性应用。
摘要由CSDN通过智能技术生成

一,装箱操作

C# 包含两种基本的数据类型,值类型和引用类型。

值类型存储在栈中,引用类型存储在堆中,互不干扰。
但当两者发生转换时,就产生了装箱的操作。


装箱操作的步骤。
1) 在堆中分配好内存。它将用于存放值类型数据。
2) 内存复制,栈上的值类型的数据复制到堆上。
3) 对象的接口或引用更新,指向堆上的位置。


从上述步骤可以看出,装箱的实质是要把值类型转换成引用类型。
先在堆上分配好内存(一个箱子),再把栈上值类型的值复制进去(装的操作)。最后把新的堆上的地址

赋给一个引用类型。


代码对照:

C# 代码

namespace _01BoxingBase
{
    class Program
    {
        static void Main(string[] args)
        {
            int nTest = 12;
            double unBox = 0;
            //执行装箱和拆箱操作
            Object obj = nTest;
            unBox = (double)(int)obj;
            Console.ReadKey();
        }
    }
}

CIL代码

</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值