JetBrains Rider 2026.1 Help

コードインスペクション:[MustDisposeResource] アノテーションは基底コンストラクターから継承されないため、明示的に配置する必要があります。

JetBrains.Annotations から [MustDisposeResourceAttribute] を使用して呼び出し側コードで リソース破棄を強制する場合、アノテーションが基本クラスのコンストラクターに配置されている場合、アノテーションは継承されないことに注意する必要があります。 この設計は、派生クラスがリソースの破棄を処理できるという事実によって動機付けられています。 他の場合には、派生クラスまたはそのコンストラクターに [MustDisposeResourceAttribute] のアノテーションを明示的に付けて、リソースを破棄する必要があることをユーザーに通知する必要があります。

public class HasNativeResources : IDisposable { [MustDisposeResource] public HasNativeResources(object a) { // Do something with a } [HandlesResourceDisposal] public void Dispose() { } } class MayHaveNativeResources : HasNativeResources { public MayHaveNativeResources(object b) : base(b) { Console.WriteLine(); } }
public class HasNativeResources : IDisposable { [MustDisposeResource] public HasNativeResources(object a) { // Do something with a } [HandlesResourceDisposal] public void Dispose() { } } class MayHaveNativeResources : HasNativeResources { [MustDisposeResource] public MayHaveNativeResources(object b) : base(b) { Console.WriteLine(); } }
2026 年 6 月 12 日