Stu*_*gan 16 c# code-analysis idisposable
我正在实现IDisposable,并且在我Dispose()调用Dispose()其他托管资源的方法中,我正在使用?.运算符,如下所示:
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if(disposing)
{
_ChangeLock?.Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
我仍然收到以下代码分析错误:
CA2213:'MyClass'包含IDisposable类型的字段'MyClass._ChangeLock':'ReaderWriterLockSlim'.更改"MyClass"上的Dispose方法,在此字段上调用Dispose或Close.
如果我更改为标准空检查,则代码分析警告消失:
if(_ChangeLock != null)
_ChangeLock.Dispose();
Run Code Online (Sandbox Code Playgroud)
使用空条件运算符是否有问题,或者这个代码分析规则是否过时,或者是什么?
| 归档时间: |
|
| 查看次数: |
1551 次 |
| 最近记录: |