リファクタリングのメインセット
このセクションでは、C# でサポートされているリファクタリングについて学習できます。これらのリファクタリングのほとんどは、Visual Basic やその他の言語でもサポートされています。
- シグネチャーの変更
- 抽象クラスをインターフェースに変換
- 匿名から名前付き型に変換
- 拡張メソッドをプレーンスタティックに変換
- インデクサーをメソッドに変換
- インターフェースを抽象クラスに変換
- メソッドをインデクサーに変換
- メソッドをプロパティに変換する
- プロパティを自動プロパティに変換
- プロパティをメソッドに変換
- 静的メソッドから拡張メソッドへの変換
- を使用してグローバルに変換する
- 非グローバルに変換する方法
- 型のコピー
- フィールドのカプセル化
- クラスの抽出
- インターフェースの抽出
- メソッドの抽出
- スーパークラスの抽出
- インライン化リファクタリング
- フィールドの導入
- パラメーターの導入
- 変数の導入
- 部分文字列に変数を導入する
- ブール値の反転
- メソッドを非静的にする
- メソッド / プロパティを静的にする
- メンバーを部分的に抽出する
- 移動リファクタリング
- メンバーのプルアップ
- メンバーのプッシュダウン
- 名前変更
- コンストラクターをファクトリメソッドで置換
- 安全な削除
- パラメーター修飾子の追加 / 削除
- 変換パラメーター
- 可能な限り基本型を使用する
関連ページ:
コンテキストアクション
コンテキストアクションは、エディターで直接利用できるコード変換ヘルパーです。クイックフィックスとは対照的に、コンテキストアクションは問題の解決やコードの改善を目的としているためはなく、アクセス修飾子の変更、null をチェックするコードの生成、'foreach' の 'for' への変換などの小さな変更をすばやく導入できます。ReSharper は、サポートされているすべての言語で数百のコンテキストアクションを提供します。完全なリストは、ReSharper オプション Alt+R, O のページとコ...
シグネチャーの変更リファクタリング
このリファクタリングは、メソッド、コンストラクター、プロパティ、インデクサーのシグネチャーに加えることができるいくつかの変更を組み合わせたものです。ReSharper は、宣言内のシグネチャーを変更するとともに、現在のソリューションで変更されたシンボルのすべての使用箇所、ベースシンボル、実装、オーバーライドを検出して更新します。適用される変更:このリファクタリングを使用すると、次の変更を行うことができます。名前の変更戻り値の型を変更するパラメーターの名前と型を変更する
抽象クラスをインターフェースに変換リファクタリング
このリファクタリングにより、抽象クラスをインターフェースに変換することができます。これは、あるクラスに複数の抽象クラスを継承させたい場合に便利です。そうすれば、そのうちの 1 つを簡単にインターフェースに変換できます。以下の例を考えてみましょう。リファクタリングを適用した後、クラスはインターフェースに変換されます。public abstract class CachedItem { public abstract int Id { get; set; } public abstract void...
匿名から名前付き型に変換リファクタリング
匿名型は、クエリの結果をローカルで処理する必要がある場合に非常に便利です。ただし、プログラムに結果を渡す必要がある場合、同様の名前 / 値部分を返すクエリがいくつかある場合は、名前付き型が必要になる可能性があります。そのような場合、ReSharper は、匿名型の既存の使用箇所を名前付きの型に変換し、使用箇所を更新できます。必要に応じて、ReSharper はソリューション全体で同様の匿名型を見つけて変換します。このリファクタリングが提供するダイアログで、作成された型をカスタマイズできます。自動...
インデクサーをメソッドに変換リファクタリング
このリファクタリングは、インデクサの一方または両方のアクセサーをメソッドに変換し、それに応じて現在のソリューションのインデクサの使用状況を更新できます。以下の例では、ReSharper はインデクサの getter と setter のアクセサーを変換して使い方を更新します:class BookLibrary { private Book[] books = new Book[1000]; public Book this[int index] { get => books[index];...
を使用してグローバルに変換するリファクタリング
このリファクタリングにより、1 つ以上のローカルディレクティブを、ディレクティブを使用してグローバルに変換し、新規または既存のファイルに移動できます。以下の例では、このリファクタリングをファイル One.cs のに適用します。ReSharper は現在のプロジェクト内のすべてのファイルを分析し、Two.cs 内で同じを見つけて、両方を GlobalUsings.cs に移動します。// One.cs using System.Collections; class One { void Test(Array...