我有一个实现IDisposable
的类。我改变了我的Dispose()方法:
public void Dispose()
{
if (AccountCreateResetEvent != null)
{
AccountCreateResetEvent.Dispose();
AccountCreateResetEvent = null;
}
}
到此:
public void Dispose()
{
AccountCreateResetEvent?.Dispose();
AccountCreateResetEvent = null;
}
现在运行代码分析时出现以下错误:
'适配器'包含字段' Adapter.AccountCreateResetEvent'属于IDisposable类型:' AutoResetEvent'。更改'适配器'上的Dispose方法在此字段上调用Dispose或Close。
这是代码分析的怪癖还是我在这里做错了什么?
编辑:重现问题的简单全类声明
using System;
using System.Threading;
namespace IDisposableProblem1
{
public sealed class Account : IDisposable
{
private AutoResetEvent AccountResetEvent = new AutoResetEvent(false);
public void Dispose()
{
AccountResetEvent?.Dispose();
AccountResetEvent = null;
}
}
}