static void Test(object obj) { obj = "1"; } static void Main(string[] args) { object obj =2; Test(obj); Console.WriteLine(obj); }
结果出乎我的意料,求解释。。。
obj =2;
执行Test方法时
// 1.为参数分配,在栈中分配一个变量 obj,以免混淆,这个变量叫 obj1
2. 为参数赋值,object obj1=obj;引用类型传 引用,此时两个变量指向同一块内存"2"
3.给obj1 赋值,obj1="1",引用改变,指向另一块内存"1", 原来的 obj还是指向 "2";
object是引用类型,那么obj=obj1="1" 不是吗?
@木龙哥:
大哥,解释的怎么清楚还有问题。出现在,对内存的分配还不清楚。
obj=obj1;什么时候 这样 赋值了?
Test又没return,解释神马
你这个情况连装箱才箱问题都没接触到,你不理解的是指针概念,你需要了解的是指针,也就是信用