码迷,mamicode.com
首页 > Windows程序 > 详细

C#值类型与引用类型

时间:2015-07-12 17:16:28      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

数据有值类型与引用类型,我们通常把引用类型的常量叫做实例

一、常量存储位置不同:
值类型常量在栈中,实例在托管堆中。

二、变量与常量的对应关系不同:
值类型变量的独立性:常量本身保存在变量自带的存储空间里,一个变量对应一个常量。
引用类型变量与实例的多对一关系:变量只保存常量所在的地址,同一个实例可以被多个变量引用。

三、初始化变量时内部操作不同:

1.初始化值类型变量
当给一个值类型变量赋值,会复制常量,放入变量中。

2.初始化引用变量
当给一个引用类型变量赋值,变量中存储的是实例的地址。
3.装箱
若用一个值类型常量给一个引用类型变量赋值,CLR尝试根据该常量,包装一个实例,再把该实例地址放到变量中。

int a=5;
Object o=a;//装箱,根据5被包装一个引用类型常量,用o保存对象地址。

总结:为了效率,把整型、浮点型这些常用类型设置成值类型。
但有些CLR某些函数只接受引用类型参数,因此有了装箱与拆箱来把操作值类型常量包装成相应的引用类型,方便操作它们。

 

C#值类型与引用类型

标签:

原文地址:http://www.cnblogs.com/wllhq/p/4641029.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!