日期:2014-05-19  浏览次数:21215 次

new生存期
我在一个局部函数中new了一个对象,然后一直被引用,请问出了这个函数,new的地址会被自动销毁吗?按网上查的资料,说只有不再使用的资源才会被销毁,是不是只要还有其他的函数在引用这个地址,它就不会销毁?
请达人指教

------解决方案--------------------
只要这个对象的引用被任何一个存活的对象拿着(包括字段设置为这个引用的值或者方法中使用了这个引用),这个对象就不会被回收。所以,只要是你通过正常手段能拿到的引用,它的对象都不会已经被回收。
------解决方案--------------------
这种问题自己做个小例子就知道了:
object a;
void test()
{
a= new object();
}
string b = a.ToString();
运行一下,这里不会抛出Exception,所以可以确定不会。
关于为什么不会,楼上的说的正确。