黑马程序员技术交流社区
标题:
值传递与引用传递的区别
[打印本页]
作者:
魏庆君
时间:
2012-8-11 10:04
标题:
值传递与引用传递的区别
请教:什么时候用到的是值传递,什么时候用到的是引用传递,一直都没有弄清楚
作者:
来明坤
时间:
2012-8-11 10:18
当实参当作值来传递时,就产生了一个新的拷贝。
[c-sharp] view plaincopyprint?
class Test
{
static void Main(string[] args)
{
int x=8;
Fo(x);
Console.WriteLine("x={0}", x);
}
static void Fo(int p)
{
p = p + 1;
Console.WriteLine("p={0}", p);
}
}
程序运行结果为:p=9,x=8;即X的值不会受P影响,给P赋一个新值并不会改变X的内容,因为P和X存在于内存中不同的位置。
同理,用传值的方式传递一个引用类型对象时,只是复制这个对象本身,即复制其地址值,而不是它指代的对象。下面代码中Fo中看到的StringBuilder对象,就是在Main方法中实例化的那一个,只是有不同的引用指向它而已。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2