关于C# 装箱拆箱的理解

原创 2016年06月01日 09:14:34

C# 装箱拆箱笔记

1.装箱,拆箱只是一个抽象概念

利用装箱拆箱功能可以让值类型的任何值与Object类型值互相转换(注意:只有被装箱过的对象才能被拆箱)

2.装箱:将值类型转换为引用类型

拆箱:将引用类型转换为值类型

3.在.NET中,数据类型分为值类型和引用类型值类型:在内存分配方式为栈内存,且值类型只会在栈中分配

引用类型:内存分配方式为堆内存(注意:是托管堆)

4. 为何需要装箱?

最普通的使用场景:

【1】调用一个带Object参数的方法,而object参数支持转换任意类型以便通用

【2】一个非泛型容器,同样是为了方便通用,而将元素类型定义为object,在传值的时候,也需要一个装箱过程


总结:

在装箱拆箱IL代码分析中能够观察到,这对内存和CPU是有额外性能损耗的,所以,一方面,尽量减少装箱拆箱操作,而是可以通过泛型来尽量避免这个问题

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

深入理解C#的装箱和拆箱

装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。          1.装箱在值类型向引用类型转换时发生          2.拆箱在引用类型向...

深入理解C#的装箱和拆箱

箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。   1. 装箱在值类型向引用类型转换时发生   2. 拆箱在引用类型向值类型转换时发生   光上述两句话不难理解,但是往深处了...

深入理解C#的装箱和拆箱

装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。  1. 装箱在值类型向引用类型转换时发生 2. 拆箱在引用类型向值类型转换时发生 光上述两句话不难理解,但是往深处了解,就需要一些篇...

C#--三行代码带你理解神秘的拆箱和装箱

一、在说拆箱和装箱之前的准备知识首先,我们需要知道c#中有两种类型:值类型和引用类型 名称 值类型 引用类型 表示类型 基本类型 类,数组,接口 ,C#特有的委托. 存储内容...

深入理解C#的装箱和拆箱

 深入理解C#的装箱和拆箱 装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。  1. 装箱在值类型向引用类型转换时发生 2. 拆箱在引用类型向值类型转换时发生 光上述...

C# - 深入理解C#的装箱和拆箱

装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。 1.装箱在值类型向引用类型转换时发生 2.拆箱在引用类型向值类型转换时发生光上述两句话不难理解,但是往深处了解,就需要一些篇幅来解释了。我们...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)