【c#基础】装箱与拆箱
2014-06-21 21:26
253 查看
1.定义
装箱:值类型转换为引用类型。
拆箱:引用类型转换为值类型。
关于值类型和引用类型,之前用了一篇文章来做了浅显的讨论:【傻傻分不清楚】C#值类型、引用类型
。
2.细节讨论
2.1装箱
例子:
执行装箱操作时不可避免的要在堆上申请内存空间,并将堆栈上的值类型数据复制到申请的堆内存空间上,这肯定是要消耗内存和cpu资源的。
2.2拆箱
拆箱操作同样需要额外消耗内存。
关于装箱、拆箱更底层的东西,有大牛做了分析:C#装箱拆箱
装箱:值类型转换为引用类型。
拆箱:引用类型转换为值类型。
关于值类型和引用类型,之前用了一篇文章来做了浅显的讨论:【傻傻分不清楚】C#值类型、引用类型
。
2.细节讨论
2.1装箱
例子:
object ojb = 1;上面一行代码是很简单的装箱,1是int类型,是值类型,隐式转换为object引用类型。
执行装箱操作时不可避免的要在堆上申请内存空间,并将堆栈上的值类型数据复制到申请的堆内存空间上,这肯定是要消耗内存和cpu资源的。
2.2拆箱
object obj = 1; int a = (int)obj;
拆箱操作同样需要额外消耗内存。
关于装箱、拆箱更底层的东西,有大牛做了分析:C#装箱拆箱
相关文章推荐
- C#基础知识整理 基础知识(18) 值类型的装箱和拆箱(一)
- C#基础知识系列二(值类型和引用类型、可空类型、堆和栈、装箱和拆箱)
- C#基础知识系列二(值类型和引用类型、可空类型、堆和栈、装箱和拆箱)
- C#基础(18)——List泛型集合、装箱、拆箱、字典集合与Hashtable区别
- C#基础知识整理 基础知识(18) 值类型的装箱和拆箱(一)
- C#基础精华03(常用类库StringBuilder,List<T>泛型集合,Dictionary<K , V> 键值对集合,装箱拆箱)
- C#基础-038 装箱与拆箱
- C#基础总结——装箱与拆箱
- C#基础知识整理 基础知识(19) 值类型的装箱和拆箱(二)
- c#基础语言编程-装箱和拆箱
- C# 数据类型基础,堆栈,装箱与拆箱
- C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)
- 装箱和拆箱(什么是装箱和拆箱) C#基础
- [C#基础知识系列]——装箱和拆箱探索总结
- C#基础知识复习3:装箱、拆箱-文件操作-对象序列化
- c#基础语言编程-装箱和拆箱
- C#基础学习之装箱,拆箱
- 基础系列(4)—— C#装箱和拆箱
- C#基础知识系列二(值类型和引用类型、可空类型、堆和栈、装箱和拆箱)
- C#基础知识系列二(值类型和引用类型、可空类型、堆和栈、装箱和拆箱)