【发布时间】:2010-12-29 21:07:21
【问题描述】:
假设我有一个与另一个类相关联的类。它看起来像下面这样:
public class DisposableClassOne : IDisposable
{
private class mDisposableClassTwo;
public DisplosableClassOne(DisposableClassTwo dcTwoInjected)
{
mDisposableClassTwo = dcTwoInjected;
}
public void Dispose()
{
// Should I dispose here? or make caller dispose of dcTwoInjected
//mDisposableClassTwo.Dispose();
}
}
我应该调用mDisposableClassTwo的Dispose方法还是让调用者这样处理?
using(DisposableClassTwo dcTwoInjected = new DisposableClassTwo())
using(DisposableClassOne dcOne = new DisposableClassOne(dcTwoInjected))
{
// do stuff with dcOne
}
我认为让调用者处理它是最好的方法,但我认为通过将调用放在 Dispose 方法中可以保证它会被调用。有没有更好的方法来处理这个问题?
【问题讨论】:
-
我使用的策略是创建对象的人负责处理。如果不是,那么您依赖于很多关于如何使用对象的假设。
标签: c# winforms dependency-injection idisposable