ReSharper 2026.1 Help

メソッド / プロパティを静的にするリファクタリング

このリファクタリングでは、インスタンスメソッドまたはプロパティを静的インスタンスメソッドまたはプロパティに変換できます。 すべての呼び出し、実装、上書きが自動的に修正されます。

変換されたインスタンスメソッドがインスタンスメンバーを使用している場合、ReSharper は、これらの使用箇所に適用するための this を表す必要なパラメーターを追加するのに役立ちます。 変換されたインスタンスプロパティがインスタンスメンバーを使用する場合、リファクタリングは使用できません。

以下の例では、このリファクタリングを使用して、 Info クラスのインスタンスメソッド Merge を静的メソッドに変換します。 リファクタリングの後、インスタンスプロパティ Id および Name の使用が新しいパラメーター i1 に適用されます。

class Info { string Id { get; set; } string Name { get; set; } Info Merge(Info other) { return new Info { Id = Id + other.Id, Name = Name + other.Name }; } void Test() { var i1 = new Info() { Id = "123", Name = "AA" }; var i2 = new Info() { Id = "456", Name = "BB" }; var merged = i1.Merge(i2); } }
class Info { string Id { get; set; } string Name { get; set; } static Info Merge(Info info, Info other) { return new Info { Id = info.Id + other.Id, Name = info.Name + other.Name }; } void Test() { var i1 = new Info() { Id = "123", Name = "AA" }; var i2 = new Info() { Id = "456", Name = "BB" }; var merged = Merge(i1, i2); } }

メソッドまたはプロパティを静的にする

  1. エディターでインスタンスメソッドまたはプロパティの宣言や使用箇所にキャレットを置くか、 ファイル構造ウィンドウウィンドウで選択してください。

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

    • Control+Shift+R を押し、を static にする を選択します。

    • 右クリックして、コンテキストメニューから リファクタリング | static にする を選択します。

    • メインメニューから ReSharper | リファクタリング | メソッドを static にする… を選択します。

    static にする ダイアログが開きます。

  3. メソッドでインスタンスメンバーを使用する場合は、オプション [ 型名 ] のパラメーターとして 'this' を追加する を選択することをお勧めします。 この場合、ReSharper によってこれらの使用箇所に適用するための必要なパラメーターが追加されます。 必要に応じて、パラメーターを追加せずに実行するか、インスタンスメンバーの使用の一部にパラメーターを適用できます。 これらの場合、リファクタリング後、静的コンテキストでのインスタンスの無効な使用箇所を手動で修正する必要がある場合があります。

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

  5. 競合するものが見つからない場合、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 日