說我有下面的類...如果引用的對象被刪除,引用變量會發生什麼?
Class1
{
private ArrayList myList;
private Class1
{
// Here fill myList with a bunch of Foo objects.
}
public ArrayList GetList()
{
return myList;
}
}
你有下面的代碼一些其他類的然後說...
Class1 myClass = new Class1();
Foo myFavoriteFoo = myClass.GetList()[0] As Foo;
現在,myFavoriteFoo實際上是對富的引用存在於Class1中的數組列表中。如果Class1內的某些內容從類中刪除特定的Foo或將其丟棄,會發生什麼? myFavoriteFoo立即= null?我猜如果我試圖訪問Foo.SomeMethod()我只會得到一個異常,如「對象引用未設置爲對象的實例」...
實際上,如果爲非託管資源正確實施,那麼垃圾收集器會在不再使用該對象時自動釋放分配給託管對象的內存。http://msdn.microsoft.com/zh-cn/library/ system.idisposable.aspx。需要注意的是可以實現'IDisposable',但實際上可能不會使用非託管資源。 – TheCloudlessSky 2010-08-12 12:02:46
@TheCloud:GC自動發佈_all_託管對象,與非託管資源無關。 – 2010-08-12 12:23:04