对象间引用赋值及方法时引用传递
Posted Arlar
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象间引用赋值及方法时引用传递相关的知识,希望对你有一定的参考价值。
考虑下面代码:
class Program { static void Main(string[] args) { C c1 = new C(); c1.str = "hello"; C c2 = new C(); c2 = c1; //对象名即是对象引用,对象间赋值即是引用复制赋值,此时栈区的c2和c1同时指向堆区的同一块内存区域 Console.WriteLine(c1.str); Console.WriteLine(c2.str); c2.str = "world"; Console.WriteLine(c1.str); Console.WriteLine(c2.str); Set(c1,"test1"); Console.WriteLine(c1.str); Console.WriteLine(c2.str); Set(c2, "test2"); Console.WriteLine(c1.str); Console.WriteLine(c2.str); Console.ReadKey(); } //对象名作为参数传入时,传入的是对象的引用 public static void Set(C c,string msg) { c.str = msg; } } class C { public string str = string.Empty; }
体会输出结果:
以上是关于对象间引用赋值及方法时引用传递的主要内容,如果未能解决你的问题,请参考以下文章
python中的值传递和引用传递(可变对象与不可变对象)也就是赋值的原理-python全部是引用传递