关于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#的装箱和拆箱

本文内容为转载,原文链接:http://www.cnblogs.com/yukaizhao/archive/2011/10/18/csharp_box_unbox_1.html 装箱...

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

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

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

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

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

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

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

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

c#数值类型,转换和装箱拆箱

  • 2011年09月19日 19:32
  • 1.29MB
  • 下载

C#语言中的装箱和拆箱操作

  • 2010年10月16日 21:42
  • 32KB
  • 下载

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

装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。 1.装箱在值类型向引用类型转换时发生 2.拆箱在引用类型向值类型转换时发生 光上述两句话不难理解,但是往深处了解,就需要一些篇幅来解...
  • kayge
  • kayge
  • 2017年11月23日 16:57
  • 16
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于C# 装箱拆箱的理解
举报原因:
原因补充:

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