CA2213 advertencia al usar? (Operador condicional nulo) para llamar a Dispose
Estoy implementandoIDisposable
y en miDispose()
método al llamarDispose()
en otros recursos gestionados estoy usando el?.
operador así:
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if(disposing)
{
_ChangeLock?.Dispose();
}
}
Todavía recibo lo siguienteerror de análisis de código:
CA2213: 'MyClass' contiene el campo 'MyClass._ChangeLock' que es de tipo IDisposable: 'ReaderWriterLockSlim'. Cambie el método Dispose en 'MyClass' para llamar a Dispose o Close en este campo.
Si cambio a una verificación nula estándar, la advertencia de análisis de código desaparece:
if(_ChangeLock != null)
_ChangeLock.Dispose();
¿Hay algo de malo en usar el operador condicional nulo como soy, o esta regla de análisis de código está desactualizada, o qué?