日期:2014-05-18  浏览次数:20788 次

一道测试题
MyClass是一个自定义类。
List <MyClass>   list   =   getMyClasses();//现在假定返回结果中包含多个MyClass
MyClass   x   =   list.Find(delegate(MyClass   myClass){...});//现假定x是在list中找到的一个有效的MyClass
MyClass   y   =   new   MyClass();
x   =   y;

现在的问题是:现在的泛型集合list中原来x所在的索引位置所存放的是x还是y?
请说明理由。

------解决方案--------------------
原来存放的还是原来的

我的理解是把x看成指针就行,x=y是x指向了y,这是浅拷贝
------解决方案--------------------
x
------解决方案--------------------
List <MyClass> list 里面存的是一些引用,x,y也都是引用.
其实就是先声名一个引用a(find方法找到那个对象),然后a赋值给x,x指向a的对象,再把y赋值给x,x又指向了y的对象.
原来的list里面的什么东西都没有变
最后就是那个a,不是x也不是y