C# 使用IDisposable接口显示类的组合
我已经为类C# 使用IDisposable接口显示类的组合,c#,idisposable,C#,Idisposable,我已经为类A实现了IDisposable接口和下面的代码 我是否应该处理类B的对象 public class A : IDisposable { private B _objB = null; public A() { _objB = new B(); } public void Load(string fil
A
实现了IDisposable
接口和下面的代码
我是否应该处理类B
的对象
public class A : IDisposable
{
private B _objB = null;
public A()
{
_objB = new B();
}
public void Load(string fileName, int loadFlags)
{
_objB .Load(fileName, 0);
}
public void Close()
{
_objB .Reset();
}
public void Dispose()
{
GC.SuppressFinalize(this);
}
}
在voidDispose()
在classA
中,我声明classB
,因此它需要使用相同的C.SuppressFinalize(_objB)进行处理代码>您完全误解了GC.SuppressFinalize()的功能。它只在类具有析构函数(又称终结器)时才起作用。你没有,所以不要叫它。如果B实际上实现了IDisposable,则只需处理它:
public void Dispose()
{
_objB.Dispose();
}
假设_objB可以被安全地处理多次,并且在处理后使用它已经生成ObjectDisposedException。您完全误解了GC.SuppressFinalize()的作用。它只在类具有析构函数(又称终结器)时才起作用。你没有,所以不要叫它。如果B实际上实现了IDisposable,则只需处理它:
public void Dispose()
{
_objB.Dispose();
}
假设_objB可以安全地处理多次,并且在处理后使用它已经生成ObjectDisposedException