CA2213 aviso ao usar? (Operador com condição nula) para chamar Dispose
Estou implementandoIDisposable
e na minhaDispose()
método ao chamarDispose()
em outros recursos gerenciados, estou usando o?.
operador assim:
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if(disposing)
{
_ChangeLock?.Dispose();
}
}
Eu ainda estou recebendo o seguinteerro de análise de código:
CA2213: 'MyClass' contém o campo 'MyClass._ChangeLock' que é do tipo IDisposable: 'ReaderWriterLockSlim'. Altere o método Dispose em 'MyClass' para chamar Dispose ou Close neste campo.
Se eu mudar para uma verificação nula padrão, o aviso de análise de código desaparece:
if(_ChangeLock != null)
_ChangeLock.Dispose();
Existe algo errado em usar o operador condicional nulo do jeito que eu sou, ou essa regra de análise de código está desatualizada ou o quê?