值
规则 ID
CA2015
类别
可靠性
修复是中断修复还是非中断修复
非中断
原因
为派生自 MemoryManager<T> 的类型定义终结器
规则说明
如果发生将终结器添加到派生自 MemoryManager<T> 的类型的情况,可能表示存在 bug,因为这表明在 Span<T> 中分发的本机资源正在被清除,同时 Span<T> 可能仍在使用该资源。
备注
MemoryManager<T> 类适用于高级方案。 大多数开发人员不需要使用它。
如何解决冲突
若要解决此冲突,请删除终结器定义。
class DerivedClass <T> : MemoryManager<T>
{
public override bool Dispose(bool disposing)
{
if (disposing)
{
_handle.Dispose();
}
}
...
// Violation occurs, remove the finalizer to fix the warning.
~DerivedClass() => Dispose(false);
}
何时禁止显示警告
如果目的是创建用于调试或验证的终结器,则可以禁止显示与此规则的冲突。
相关规则
CA1821:移除空终结器
另请参阅
可靠性规则
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。