假设我有一个包含两个字段的类,每个字段都包含一次性对象。
class C : IDisposable {
private IDisposable thing1 = new Thing1();
private IDisposable thing2 = new Thing2();
... IDisposable implementation ...
}
当创建一个类的实例时C
Thing1
会被创建,然后Thing2
. 但是,如果在构造时发生异常Thing2
,它将不会被创建,并且类的实例C
也不会完成创建。实例化类的代码C
没有对部分构造的引用来C
调用Dispose
它,所以我们留下了一个Thing1
永远不会被释放的实例。
什么是最好的分辨率?