一個問題,這是建立在To "new" or not to "new"創建新的對象,然後重新分配
Foo object1 = new Foo();
// some operations later ...
object1 = new Foo();
就是我試圖做的最好?如果Foo
實現了Idispoable,那麼在第二次調用新操作符之前是否需要調用dispose?
一個問題,這是建立在To "new" or not to "new"創建新的對象,然後重新分配
Foo object1 = new Foo();
// some operations later ...
object1 = new Foo();
就是我試圖做的最好?如果Foo
實現了Idispoable,那麼在第二次調用新操作符之前是否需要調用dispose?
是的,你在這個例子中做的很好。
object1
變量僅僅是對Foo
類型的對象的引用。在第一個new
分配之後,它指的是Foo
的一個特定實例;在第二個new
賦值之後,它指向一個完全不同的實例(並且原始實例變爲符合垃圾回收的條件,假設沒有其他引用它的地方)。
是的,如果Foo
工具IDisposable
那麼你應該處理它,最好使用using
塊,雖然我個人的偏好是使用單獨的using
變量對每個塊:
using (Foo first = new Foo())
{
// do something
}
using (Foo second = new Foo())
{
// do something else
}
一般來說,如果一個類實現了IDisposable
,那麼建議確保Dispose()
被調用。這幾乎總是正確的做法。
我會更強烈地說:「如果一個類實現了IDisposable,你應該調用Dispose()」最好是,儘可能使用using語句包裝 – 2011-02-09 04:00:34
我希望你在發現引用的問題,OP只是不理解C#語法?不要做他做的事。 – 2011-02-09 04:00:33