コードインスペクション:戻り値は破棄する必要がありますが、メソッドまたは関数には [MustDisposeResource] が付けられていません
呼び出し元のコードで [MustDisposeResourceAttribute]を JetBrains.Annotationsから使用して リソースの破棄を強制する場合、アノテーション付きのソースからリソースを取得するメソッドがリソースの破棄を処理せずに他の呼び出し元に返した場合、リソースの誤った取り扱いの問題が呼び出し元に引き継がれます JetBrains Rider はこのようなケースを報告し、メソッドに [MustDisposeResource] を付与し、使い捨てリソースの処理責任を明示的に呼び出し元へ委譲することを提案します:
[MustDisposeResource]
public class HasNativeResources : IDisposable
{
private IDisposable _resource;
public void Dispose()
{
_resource.Dispose();
}
public void Configure()
{
//configure resource
}
}
public class Test
{
HasNativeResources CreateAndConfigure()
{
var resource = new HasNativeResources();
resource.Configure();
return resource;
}
}
[MustDisposeResource]
public class HasNativeResources : IDisposable
{
private IDisposable _resource;
public void Dispose()
{
_resource.Dispose();
}
public void Configure()
{
//configure resource
}
}
public class Test
{
[MustDisposeResource]
HasNativeResources CreateAndConfigure()
{
var resource = new HasNativeResources();
resource.Configure();
return resource;
}
}
2026 年 6 月 12 日