ReSharper 2026.1 Help

Dispose パターンを生成する

ReSharper を使用すると、クラスが所有するリソースの種類に応じて、 IDisposable のさまざまな実装を自動的に生成できます:

  • クラスが管理 IDisposable リソースのみを所有している場合、ReSharper はパラメーターなしのシンプルな public void Dispose() の実装を生成し、選択した破棄可能なメンバーに対して Dispose() を呼び出します。

  • クラスがアンマネージリソースのみを所有している場合、ReSharper はデストラクターと ReleaseUnmanagedResources メソッドを追加で生成し、そこでクリーンアップコードを記述できます。

  • クラスが管理リソースとアンマネージリソースの両方を所有しているか(継承を介して)所有する可能性がある場合、ReSharper はさらに継承でオーバーライド可能な Dispose(bool disposing) メソッドを作成します。

使い捨てパターンの実装方法を構成するには、 生成する ダイアログの オプションを使用します。

以下の例では、このコマンドを使用して、管理された logger および resource フィールドの使い捨てパターンを生成し、これらのフィールドの null チェックを生成する単一の オプションを使用しています。

生成前

生成後

class MyClass { private Logger logger; private IDisposable resource; }
class MyClass : IDisposable { private Logger logger; private IDisposable resource; public void Dispose() { logger?.Dispose(); resource?.Dispose(); } }

Dispose パターンを生成する

  1. エディターで、型名または型内の破棄パターンを挿入する行にキャレットを置きます。 キャレットが型名上にある場合、生成されたコードは型宣言の先頭に追加されます。

  2. Alt+Insert を押すか、メインメニューから ReSharper | 編集|コードの生成… を選択します。 あるいは、 Control+Shift+A を押して、ポップアップでコマンド名を入力して、そこで選択することもできます。

  3. 生成する ポップアップで、 Dispose パターン を選択します。

  4. 表示される 生成する ダイアログでは、 IDisposable 型に割り当て可能なプライベートプロパティおよびフィールドのリストが表示されます。 これらの型メンバーの一部またはすべてを選択すると、ReSharper は選択した型メンバーへの実行を委譲するラッパーを現在の型に生成します。

    ReSharper を使用した Dispose パターンの生成

    必要に応じて、ダイアログで次のコントロールを使用します。

    • フィールドは null 可能 — 型に nullable なフィールドまたはプロパティがある場合に表示されます。 デフォルトでこのチェックボックスが選択されている場合、ReSharper は選択したフィールドの null チェックを生成します。 null チェックが不要な場合は、このチェックボックスをオフにできます。

    • 管理されていないリソースを持っている — このチェックボックスを選択すると、ReSharper はクリーンアップコードを記述できるデストラクターと ReleaseUnmanagedResources メソッドを追加で生成します。

    • このクラスから継承するプランがある — このチェックボックスを選択すると、ReSharper は継承でオーバーライド可能な Dispose(bool disposing) メソッドを追加で作成します。

    • Dispose がすでに存在するDispose() の実装がすでに存在する場合に表示され、次のいずれかを選択できます。

      • メソッドがすでに存在する場合は置換します。

      • 新しく生成されたメソッドを既存のメソッドと並べて置きます。

      • 新しいメソッドの生成をすべてスキップします。

    • デストラクタはすでに存在する管理されていないリソースを持っている オプションを選択し、クラスにすでにデストラクタがある場合に表示されます。 このセレクターを使用して、次のいずれかを選択します。

      • メソッドがすでに存在する場合は置換します。

      • 新しく生成されたメソッドを既存のメソッドと並べて置きます。

      • 新しいメソッドの生成をすべてスキップします。

  5. 完了 をクリックしてウィザードを完了します。

    オプション をクリックすることで、ReSharper オプションの コード編集 | メンバーの生成 ページで一般的なコード生成の環境設定を確認または変更することもできます。

IDisposable が実装されていない場合、このアクションは クイックフィックスとしても利用できます。

Dispose パターンの生成に役立つクイックフィックス

この機能は、次の言語とテクノロジーで サポートされています。

言語: C#

言語: VB.NET

言語: C++

言語: ASP.NET

言語: Razor

言語: XAML

言語: Resx

言語: スクリプトの作成

言語: SQL

この機能は C# で利用可能です

この機能は Visual Basic で利用可能です

この機能は C++ では使用できません

この機能は ASP.NET では使用できません

この機能は Razor では使用できません

機能は XAML では使用できません

機能はリソースファイルでは使用できません

機能はビルドスクリプトファイルでは使用できません

機能は SQL/NoSQL ファイルおよびインジェクションでは利用できません

ここで説明する手順と例では、C# の機能の使用について説明します。 他の言語の詳細については、 言語およびフレームワーク セクションの対応するトピックを参照してください。

2026 年 6 月 12 日