代码检查:带有 [MustDisposeResource] 注解的方法的返回值从未被释放
如果您在调用代码中使用 [MustDisposeResourceAttribute] (来自 JetBrains.Annotations )来 强制资源释放 ,ReSharper 会报告以下情况:存在一个用构造函数或返回可释放资源的工厂方法初始化的变量,但该变量未被正确处理。
为了避免对可释放资源的错误处理,ReSharper 建议将变量声明转换为 using 声明或 using 块:
[MustDisposeResource]
public class HasNativeResources : IDisposable
{
private IDisposable _resource;
public void Dispose()
{
_resource.Dispose();
}
}
public class Test
{
public Test()
{
var resource =
new HasNativeResources();
}
}
[MustDisposeResource]
public class HasNativeResources : IDisposable
{
private IDisposable _resource;
public void Dispose()
{
_resource.Dispose();
}
}
public class Test
{
public Test()
{
using var resource =
new HasNativeResources();
}
}
最后修改日期: 2025年 9月 27日