如果我有一个方法,如:返回值存储器范围
public SomeObject GetObject(int ID){
SomeObject obj1 = new SomeObject();
obj1.ID = ID;
return obj1;
}
然后,如果我用这样的方法:
SomeObject obj2 = GetObject(4);
威尔obj2
简单地是obj1
在存储器中的参考,或将它被复制到内存中并存在两个完整的对象?
如果后者为真,GC何时会从内存中删除obj1
?
对象实际上并未“按价值”传递。他们的引用是通过价值传递的。 – Ryan 2011-05-16 18:03:20
@minitech我不确定我说他们不是 – 2011-05-16 19:51:45
但这只是令人困惑,因为问题是询问对象的内容是否被复制,而您的示例与此无关。 – Ryan 2011-05-16 22:28:03