Foo object1 = new Foo();
// some operations later ...
object1 = new Foo();
我试图做的是可取的吗?如果Foo
实现了Idispoable,我是否需要在第二次调用new运算符之前调用dispose?
答案 0 :(得分:3)
是的,你在这个例子中做的很好。
object1
变量只是对Foo
类型对象的引用。在第一次new
分配后,它引用Foo
的一个特定实例;在第二个new
赋值之后,它引用了一个完全不同的实例(并且原始实例有资格进行垃圾收集,假设没有其他任何引用它)。
是的,如果Foo
实现了IDisposable
,那么你应该优先处理它,最好是使用using
块,尽管我的个人偏好是使用单独的using
变量每个街区:
using (Foo first = new Foo())
{
// do something
}
using (Foo second = new Foo())
{
// do something else
}
答案 1 :(得分:1)
通常,如果一个类实现IDisposable
,那么建议确保调用Dispose()
。这几乎总是正确的事情。