首页 新闻 会员 周边

什么是引用

0
[待解决问题]

对引用这个概念不太清楚,请详细讲解一下,谢谢

杀  手的主页 杀 手 | 菜鸟二级 | 园豆:213
提问于:2011-04-21 13:02
< >
分享
所有回答(2)
0

先搞清什么是值类型和引用类型。
C#值类型数据直接在他自身分配到的内存中存储数据,而C#引用类型只是包含指向存储数据位置的指针。
基础数据类型(string类型除外):包括整型、浮点型、十进制型、布尔型。

整型包括:sbyte、byte、char、short、ushort、int、uint、long、ulong 这九种类型;浮点型就包括 float 和 double 两种类型;十进制型就decimal ;布尔型就是 bool 型了。结构类型:就是 struct 型。枚举类型:就是 enum 型。引用类型有五种:class、interface、delegate、object、string

引用类型作为参数时:
1、在修改变量本身时,结果类似于值传递,即不会改变传递前的变量的值
2、在修改变量的属性或字段时,才是引用传递,会影响到传递前的变量的值
3、参数使用了ref后,才是真正的引用传递,不管修改变量本身还是修改变量的属性或字段,都会影响到传递前的变量的值

值传递:传的是对象的值拷贝。(即函数内参数对象是调用时传递的对象的栈中对象的拷贝。)
引用传递:传的是栈中对象的地址。(即函数内参数对象与调用时传递的对象完全是同一栈中对象。)

在Java中:
1. 基本类型和基本类型变量被当作参数传递给方法时,是值传递。在方法实体中,无法给原变量重新赋值,也无法改变它的值。
2. 对象和引用型变量被当作参数传递给方法时,是引用传递。在方法实体中,无法给原变量重新赋值,但是可以改变它所指向对象的属性。

和c#中的一样,只不过Java中没有ref, out等关键字

费里曼 | 园豆:493 (菜鸟二级) | 2011-04-21 15:11
0

简单来说,引用就是给你key,需要用时,通过key对value进行操作。

醉卧天南 | 园豆:369 (菜鸟二级) | 2011-05-04 13:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册