ReSharper 2026.1 Help

コンストラクターをファクトリメソッドで置換リファクタリング

このリファクタリングは、既存のクラスに対して ファクトリメソッドパターンの実装を支援します。 同じクラスにファクトリメソッドを作成する場合、リファクタリングによって選択したコンストラクターがprivateになり、新しいインスタンスを返すstatic メソッドにカプセル化されます。 ファクトリメソッドを他のクラスに作成することもできます。 この場合、コンストラクターはpublicのままですが、必要に応じて後でアクセス修飾子を変更できます。

コンストラクターの使用があれば、ファクトリメソッド呼び出しに置き換えられます。

以下の例では、リファクタリングを使用して同じクラスのファクトリメソッドを追加しています:

class Foo { public Foo() { // instance initialization } }
class Foo { public static Foo CreateFoo() { return new Foo(); } private Foo() { // instance initialization } }

コンストラクターをファクトリメソッドに置き換える

  1. エディターで、キャレットをコンストラクターに配置するか、 ファイル構造ウィンドウウィンドウでコンストラクターを選択します。

  2. 次のいずれかを実行します。

    • Control+Shift+R を押し、を コンストラクターをファクトリメソッドで置換 を選択します。

    • 右クリックして、コンテキストメニューから リファクタリング | コンストラクターをファクトリメソッドで置換 を選択します。

    • メインメニューから ReSharper | リファクタリング | 変換 | ファクトリメソッドへのコンストラクター ... を選択します。

    コンストラクターをファクトリメソッドで置換 ダイアログが開きます。

  3. ファクトリメソッドの名前を指定するか、提案された名前を受け入れます。

  4. デフォルトでは、リファクタリングは同じクラスにファクトリメソッドを作成します。 ファクトリメソッドを別のクラスに作成する場合は、クラスの完全修飾名を指定します。

  5. リファクタリングを適用するには、 次へ をクリックします。

  6. 競合するものが見つからない場合、ReSharper はすぐにリファクタリングを実行します。 それ以外の場合は、 競合を解決するように求められます。

ReSharper。 コンストラクターをファクトリメソッドで置換リファクタリング

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

言語: C#

言語: VB.NET

言語: C++

言語: ASP.NET

言語: Razor

言語: XAML

言語: Resx

言語: スクリプトの作成

言語: SQL

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

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

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

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

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

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

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

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

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

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

2026 年 6 月 12 日