コードインスペクション:[MustDisposeResource] アノテーションが付与されたメソッドの戻り値は破棄されていません
呼び出し側コードで JetBrains.Annotations の [MustDisposeResourceAttribute] を使用して リソースの破棄を強制している場合、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();
}
}
2026 年 6 月 12 日