コードインスペクション: 戻り値は破棄する必要がありますが、メソッドまたは関数に [MustDisposeResource] アノテーションが付けられていません
[MustDisposeResourceAttribute] を JetBrains.Annotations から使用して呼び出し元のコードで リソースの廃棄を強制している場合、アノテーション付きソースからリソースを取得するメソッドがリソースの廃棄処理をせずに他の呼び出し元へ返すと、リソースの不適切な処理の問題が呼び出し元に引き継がれます。 ReSharper はこのようなケースを報告し、メソッドに [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 日