博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 装箱和拆箱
阅读量:6251 次
发布时间:2019-06-22

本文共 699 字,大约阅读时间需要 2 分钟。

C#的值类型可以分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型。

1、那么值类型和引用类型能否相互转换呢?

答案是肯定的,C#通过装箱和拆箱来实现两者的相互转换。

(1)、装箱   ---把值类型强制转换成引用类型(object类型)

(2)、拆箱   ---把引用类型强制转换成值类型,这个过程也称之为"强制转换"

注:拆箱只能对以前装箱的变量进行拆箱,代码如下:

static void Main(string[] args)        {            string num = "666";            object obj = num;            int unboxnum = (int)num;            Console.WriteLine(unboxnum);        }

在拆箱的过程中,确保得到的值有足够的空间得到拆箱中的值中的所有的字节,代码如下:

long num = 666666666666666666;            object obj = num;            checked            {                int unboxnum = (int)obj;                Console.WriteLine(unboxnum);            }

拆箱后的值无法接收long的值,所以报了InvalidCastException异常。

转载于:https://www.cnblogs.com/GreenLeaves/p/6835741.html

你可能感兴趣的文章
我的友情链接
查看>>
Nginx配置SSL证书
查看>>
AskoziaPBX 安装
查看>>
Tutorial for adding a library project as git submodule and then using it as a studio Module
查看>>
crontab + mysqldump 解决每天定时自动备份MySQL数据库
查看>>
metasploit扫描vsftp服务器root权限
查看>>
bzoj 3489: A simple rmq problem
查看>>
linux的grub的背景颜色
查看>>
计算器代码
查看>>
我的友情链接
查看>>
c# Linq Where 抛出异常 导致 程序崩溃
查看>>
Excel技巧
查看>>
Windows 7无法休眠却自动关机?微软推出补丁
查看>>
优化MyEclipse编译速度慢的问题、build、project clean 慢
查看>>
我的友情链接
查看>>
RHEL6 yum配置
查看>>
Http协议状态码
查看>>
Skip List(跳跃表)原理详解与实现
查看>>
Linux报告生成器工具awk
查看>>
Oracle 11gR2 RAC ORA-00845 MEMORY_TARGET not supported on this system 解决方法
查看>>