ReSharper 2024.1 ヘルプ

フィールドの導入リファクタリング

このリファクタリングでは、選択した式に基づいて新しいフィールドを作成し、式またはコンストラクターで初期化し、現在の型の式の出現を新しく導入されたフィールドへの参照に置き換えることができます。

以下の例では、このリファクタリングを使用して、同じ文字列の 2 つの出現箇所を新しい定数フィールドに置き換えます。

class ErrorHandler { public static void LogError(Exception e) { File.WriteAllText(@"c:\Error.txt", "Something has failed" + e); } public static void PrintError(Exception e) { Console.WriteLine("{0} : {1}", "Something has failed", e); } }
class ErrorHandler { private const string ErrorMessage = "Something has failed"; public static void LogError(Exception e) { File.WriteAllText(@"c:\Error.txt", ErrorMessage + e); } public static void PrintError(Exception e) { Console.WriteLine("{0} : {1}", ErrorMessage, e); } }

フィールドを紹介する

  1. エディターで式を選択します。

  2. 以下のいずれか 1 つを実行します:

    • Control+Alt+D を押します。

    • Control+Shift+R を押し、フィールドの導入を選択します。

    • 右クリックして、コンテキストメニューからリファクタリング | フィールドの導入を選択します。

    • メインメニューから ReSharper | リファクタリング | フィールドの導入…を選択します。

  3. フィールドの導入ダイアログが開きます。新しいフィールドの名前を指定し、アクセス修飾子を選択します。必要に応じて、フィールドに static および readonly 修飾子を追加するかどうかを指定します。

  4. フィールドの初期化方法を選択します。

    • 現在のメンバー : 現在のメンバーのフィールドを初期化します(このオプションは、単一の出現箇所を置き換えることを選択した場合、またはすべての出現箇所が現在のメンバー内にある場合にのみ使用可能です)。

    • フィールドイニシャライザー : 宣言内のフィールドを初期化します。

    • コンストラクター : 含むクラスの 1 つまたは複数のコンストラクター内のフィールドを初期化します。コンストラクターがない場合は、フィールドを初期化するためのパラメーターなしのコンストラクターが作成されます。

    • 定数を導入する : 定数フィールドを作成します。このオプションは、選択した式の値が組み込み型に対応している場合にのみ使用できます。

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

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

ReSharper: Introduce Field refactoring

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

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

関連ページ:

フィールドのインライン化リファクタリング

このリファクタリングは、フィールドを値で置き換え、宣言を削除できます。明らかな理由から、リファクタリングは、書き込みの使用が 1 つしかないフィールドに適用できます。これは、定数または読み取り専用フィールド、または初期化されて同じ関数で使用されるフィールドです。ターゲットフィールドに条件付きまたは複雑な割り当てがあり、単一の関数内で使用される場合、ReSharper はフィールドの値を処理するローカル変数を作成します。以下の例では、このリファクタリングを使用して、1 回の使用箇所を持つ定数をイン...

リファクタリングの競合を解決する

ReSharper のすべてのリファクタリングはソリューション全体に適用されるため、多くのファイルが影響を受ける可能性があり、一部の変更は既存のコードと競合する可能性があります。競合がある場合、ReSharper はそれらを検出し、リファクタリングウィザードの最後のページに競合のリストを表示します。例: 安全な削除リファクタリングをメソッドに適用するときに表示されるいくつかの競合を次に示します。競合には 2 つの型があります。コンパイルを中断することなく削除できる使用箇所は、アイコンでマークされて...

ASP.NET MVC 特有の機能

ReSharper には、一般的な ASP.NET 機能に加えて、ASP.NET MVC での作業をより簡単にサポートする特殊機能があります。構文のハイライト:ASP.NET MVC メソッド呼び出しとパラメーターの特別な構文のハイライト: コード補完:文字列リテラルでアクションとコントローラーを参照するための専用コード補完: ナビゲーションと検索:さまざまなナビゲーション機能がアクションとコントローラーでも機能します。コード生成:使用箇所から新しいコントローラーとアクションを作成する: 最終...

言語による ReSharper: MS ビルド

MSBuild は、アプリケーションを構築するために広く使用されているプラットフォームです。特定の XML タグを使用して、プロジェクトの構築方法や実行方法を定義できます。ReSharper を使用すると、より速く行うことができます。コード検査:あらかじめ定義された要素またはその属性の名前を誤って入力した場合、ReSharper はそのような不一致についてハイライト表示します。まだ定義されていないプロパティを参照しようとすると、ReSharper はそのようなケースも検出します。MSBuild...

言語による ReSharper: Google プロトコルバッファ (プロトブフ)

ReSharper は、Google プロトコルバッファ(Protobuf)バージョン 2.x および 3.0 の .proto ファイルで IDE サポートを提供します。ReSharper は、.proto ファイルの言語構文をハイライトし、エラーを検出してハイライトします。基本コード補完と他のタイピング支援機能はエディターで利用可能です。型と値の宣言に行き、それらの用法を検索し、他のナビゲーション機能を楽しむことができます。Protobuf コードを再フォーマットしてシンボルの名前を変更することも...

言語 JSON による ReSharper

JSON および JSON スキーマのサポートは、現在、構文のハイライト(古い Visual Studio バージョンを含む)のような基本的なものから、コードのフォーマットや再配置(たとえば、オブジェクトのプロパティや任意の選択を移動できる)、コードインスペクションおよびクイックフィックスなどのより高度な機能にまでおよびます。スキーマ、パス、正規表現、パッケージを認識するコード補完も同様です。JSON 値ヘルパー:ReSharper では、JSON プロパティの一部を特定の値タイプ(正規表現、...