我有一个使用一些底层本机资源的对象,并且有一个指向下一个实例的指针,我对其进行迭代,类似于:
MyObject begin = null;
try
{
begin = GetFirst();
while (begin != null)
{
MyObject next = begin.Next();
// do something with begin
begin.Dispose();
begin = next;
}
}
finally
{
if (begin != null)
{
begin.Dispose();
}
}
我得到代码分析问题:
CA2202:Microsoft.Usage:对象“开始”可以在方法“x()”中多次处理。为避免生成 System.ObjectDisposedException,您不应在一个对象上多次调用 Dispose。
知道如何在不抑制它的情况下摆脱这个错误吗?