我有一个对象的集合。当我在该集合上添加一些对象时。它会保存该对象本身还是保存它的引用。
List<Student> myList;
Student std1 = new Student();
Student std2 = new Student();
myList.Add(std1);
myList.Add(std2);
myList会包含什么? std1和std2的重复副本或这两个对象的引用?
如果列表位于某个远程位置,我通过wcf服务访问它。然后我在这个列表中添加对象。会发生什么。这些对象将通过 MBV 或 MBR 添加?
实际上我有List确定,我在这个列表中添加了Student的对象..
最后我说,假设我在其他机器上的某个程序中有这个List。我可以使用WCF服务访问该程序。通过WCF服务获取该程序的引用。然后我打电话给Program.myList.Add(学生)。现在将在该远程计算机上生成一个副本,并将其添加到myList或将保存引用?
答案 0 :(得分:2)
您使用的是List<Object>
,Object
是引用类型,因此您的列表将保留对实例的引用。
我不确定你对最后一部分的意思,请你详细说明。
答案 1 :(得分:0)
由于Object类型是引用类型,因此示例中的List将引用值存储到托管堆上作为Student对象分配的对象。