关于C# 装箱拆箱的理解
2016-06-01 09:14
246 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ZeroToOneToZero/article/details/51553410
C# 装箱拆箱笔记
1.装箱,拆箱只是一个抽象概念
利用装箱拆箱功能可以让值类型的任何值与Object类型值互相转换(注意:只有被装箱过的对象才能被拆箱)
2.装箱:将值类型转换为引用类型
拆箱:将引用类型转换为值类型
3.在.NET中,数据类型分为值类型和引用类型值类型:在内存分配方式为栈内存,且值类型只会在栈中分配
引用类型:内存分配方式为堆内存(注意:是托管堆)
4. 为何需要装箱?
最普通的使用场景:
【1】调用一个带Object参数的方法,而object参数支持转换任意类型以便通用
【2】一个非泛型容器,同样是为了方便通用,而将元素类型定义为object,在传值的时候,也需要一个装箱过程
总结:
在装箱拆箱IL代码分析中能够观察到,这对内存和CPU是有额外性能损耗的,所以,一方面,尽量减少装箱拆箱操作,而是可以通过泛型来尽量避免这个问题
相关文章推荐
- 深入理解C#的装箱和拆箱
- 深入理解C#的装箱和拆箱
- 关于C#的装箱和拆箱的简单测试例子
- 深入理解C#的装箱和拆箱
- 深入理解C#的装箱和拆箱
- C# 装箱 拆箱 理解
- 深入理解C#的装箱和拆箱(转)
- 深入理解C#的装箱和拆箱
- .NET(C#):理解值类型/引用类型,装箱/拆箱,Object类
- 深入理解C# 装箱和拆箱(整理篇)
- 深入理解C#的装箱和拆箱
- C#学习笔记二:用实例深入理解装箱、拆箱
- 深入理解C#的装箱和拆箱
- 深入理解C#的装箱和拆箱
- 深入理解 c# 第四章 可空类型的装箱和拆箱行为
- C# - 深入理解C#的装箱和拆箱
- 深入理解C#的装箱和拆箱
- 读《.NET(C#):理解值类型/引用类型,装箱/拆箱,Object类》 有感,小白类文
- 深入理解C#的装箱和拆箱
- 【转】深入理解C#的装箱和拆箱