A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一叶一花 中级黑马   /  2014-2-15 15:20  /  1320 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 一叶一花 于 2014-2-15 22:09 编辑

如题 值类型和引用类型的区别是什么啊  ?希望能举个例子说明一下

评分

参与人数 1技术分 +2 收起 理由
陈福军 + 2 新年新气象,加油!

查看全部评分

5 个回复

倒序浏览
1. 将一个值类型变量赋值给另一个值类型变量时候,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身;
2. 值类型不可能派生出新的类型,所有的值类型均隐士派生自Systen.ValueType。但是与引用类型相同的是,结构也可以实现接口;
3.值类型不可能包含null值,然而,可空类型功能允许将null赋给值类型;
4.每种值类型均有一个隐士的默认构造函数来初始化该类型的默认值。
回复 使用道具 举报 1 0
1.值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址。
2.值类型存取速度快,引用类型存取速度慢。
3.值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用
4.值类型继承自System.ValueType,引用类型继承自System.Object
6.值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。

评分

参与人数 1技术分 +2 收起 理由
陈福军 + 2 新年新气象,加油!

查看全部评分

回复 使用道具 举报
使用out关键字时,必须在方法里面对字段进行赋值,而且必须在使用之前进行赋值,方法外面赋不赋值无所谓,即使你再方法外面赋值,调用带有out关键字方法的时候,自动会对字段重新赋值
使用ref关键字时,既可以在外面对字段进行赋初值,也可以在方法里面对字段进行赋初值
回复 使用道具 举报
王忠杰 发表于 2014-2-15 22:59
使用out关键字时,必须在方法里面对字段进行赋值,而且必须在使用之前进行赋值,方法外面赋不赋值无所谓, ...

回复错了....不好意思
回复 使用道具 举报
谢谢,回答的很好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马