コードスタイル

ReSharperは、コードベース全体で一貫したコードスタイルを維持するのに役立ちます。 デフォルトのスタイル設定は広く受け入れられている方法やベストプラクティスに基づいていますが、個人的な好みや社内標準が異なる場合は、これらの設定を全体的に、またはソリューションごとに設定し、チーム全体で設定を共有できます

コードスタイルの好みは、ReSharperがコード補完でシンボル名を提案する際、新しいメンバーを生成する際、コードテンプレートを適用する際、リファクタリングを実行する際に考慮されます。

コードスタイルの違反はコードインスペクションにより検出され、クイックフィックスまたはコードのクリーンアップを使って修正できます。

コードのクリーンアップ適用してコードスタイル設定を強制

コードのクリーンアップ

コードのクリーンアップは1つ以上のファイル、単一のプロジェクトまたはソリューション全体でコードスタイル違反を即座に取り除くのに役立つ機能で、それらすべてが一つのショートカット(Ctrl+E、C)で呼び出せます。

デフォルトのプロファイルには、Full Cleanup命名スタイル以外のすべてのコードスタイル設定を適用)とReformat Codeフォーマット規則のみを適用)の2種類がありますが、これはカスタムタスク固有のプロファイルで補完することができます。

現在選択中のコードの再フォーマット

コードフォーマット

ReSharperは、お好みに応じて選択されたコードブロック、現在のファイル内のすべてのコード、単一ディレクトリ内、あるいはプロジェクトやソリューション全体のすべてのファイルも再フォーマットできます。 ReSharperは、すべてのサポート対象言語に別々のフォーマットオプションをご提供しています。 再フォーマットは、さまざまなコンテキストの波括弧のレイアウト、空行、行の折り返しや改行、スペース、インデント、複数構文の調整、およびReSharperオプションダイアログボックスで微調整できる、その他多数のオプションに影響します。

フォーマット規則のコンテキスト設定は、再フォーマットが必要なコードを選択して、Alt+Enterを押すと使用できます。 コードに影響するフォーマット規則をすべて表示するには、 アクションリストでFormat Selection | Configureを選択してください。

コードのクリーンアップを使用して、コードを再フォーマットすることもできます。

'var' キーワードを使用した明示的な型の置換

暗黙的/明示的な型指定

C# 3.0で導入された暗黙的に型指定される変数(varキーワード)は、出力コードの可読性が向上したために、非常に一般的に使用されるようになりました。 また、ReSharperはデフォルトで、varキーワードの使用も促します。

しかし、環境設定を変更し、明示的な型の使用を選択できます。

また、コードのクリーンアップを使用して、暗黙的/明示的な型指定の設定を強制させることもできます。

自動プロパティクイックフィックスの使用

自動プロパティの使用

自動実装プロパティ(自動プロパティとしても知られる)を使うと、一層簡単に、追加ロジックを持たない型プロパティを宣言できます。 ReSharperはデフォルトで、可能な場合に自動プロパティの使用を促しますが、この動作は変更できます。

クイックフィックスやコードのクリーンアップを使用して、バッキングフィールドを持つプロパティを自動プロパティに変換できます。

フィールドを読み込み専用にするクイックフィックス

C#修飾子のスタイル

C#の型および型メンバーの修飾子は任意の順番で書けます。 しかし、同じようにコード全体にわたってそれらを整理すると、コードの可読性を向上させることができます。 ReSharperをご使用いただくと、目的の順序を定義し、順序付けされていない 修飾子を検出し、それらを自動的に並べ替えるのに役立ちます。

また、ReSharperでは、privateinternal修飾子を明示的に使用するかどうかを設定で強制できます。

多くの場合、宣言部やコンストラクタで割り当てられ、読み取り用途しかないフィールドにreadonly修飾子を使用することは理にかなっています。 ReSharperはデフォルトで、上記の条件を満たした場合にフィールドをreadonlyにするよう促します。

修飾子に関する設定はすべて調整可能で、それらはクイックフィックスやコードのクリーンアップを使って適用できます。

指定範囲内での冗長コードの削除

冗長コードの削除(C#のみ)

ReSharperは冗長コード用の多数のコードインスペクションを提供しています。

これら冗長コードの大半は、範囲内での修正かコードのクリーンアップを使って、ユーザーの介入なしでクリーンアップできます。

冗長コードを削除する際、ReSharperはその他すべてのコードスタイル設定を考慮します。 特定コードの構文がコードスタイル設定で冗長ではないと定義されている場合、そのままの形で残されます。

拡張された命名スタイル設定

命名スタイル

ReSharperでは、型、名前空間、インターフェース、パラメータ、メソッドのプロパティやイベント、静的フィールドやインスタンスフィールドなど、さまざまな言語やシンボルに対応したカスタム命名スタイル設定を定義できます。

あらゆる種類のシンボルに対し、5種類の大文字・小文字オプションのいずれか、プレフィックスとサフィックス、さまざまなアクセス権のバリエーション、保存する略語、およびその他のオプションを設定できます。

命名スタイルに違反している箇所はすべてエディタ内でハイライト表示され、簡単に修正できます。

さらに、Find Code Issues機能を使うと、Inspection Resultsウィンドウでソリューション全体(または範囲を限定して)命名スタイルに違反している箇所をすべて閲覧(およびクイックフィックスを適用)することができます。

'using' ディレクティブを最適化するためのスタイル設定

名前空間のインポートスタイル

コードの可読性を向上させるために、冗長なusingディレクティブを削除したり、C#およびVB.NETコードファイルで修飾された参照を短くできます。 さらに、他にも名前空間をインポートする方法があります。using/importディレクティブを追加するか、完全修飾型名を使ったり、ファイルの先頭や名前空間内にディレクティブを配置したりできます。

ReSharperを使うと、冗長なインポートをすばやく検出してエディタで直接削除したり、コードのクリーンアップを使って補足的に必要なディレクティブをアルファベット順に並び替えたり、一つの領域にまとめたりできます。

CLR型名の代わりにC#組み込みの型キーワードを使用する

C#の組み込み型の参照スタイル

C#の型キーワードと.NET Framework(CLR)型名はC#の組み込み型と互換性があります。 組み込み型の名前を一つまたは別のスタイルに固定させたい場合、ReSharperはあなたの設定を維持できるようにします。

設定を調整し、コードのクリーンアップを使ってそれを強制することもできます。

複数のC#属性を自動的に分割

C#属性のスタイル

C#の複数の属性をさまざまな方法で書けます。複数の属性を同じ角括弧セクションにまとめたり、異なる属性を複数のセクションに分けることができます。 ReSharperでは複数の属性でスタイルを指定し、そのスタイルを指定範囲で強制できます。

また、ReSharperは属性に対する複数のフォーマット規則も提供し、コードのクリーンアップを使って属性にすべてのスタイル設定を一括で適用できます。

冗長なメンバー修飾子を削除

省略可能なメンバー修飾子のスタイル

C#では、thisキーワードを使用してインスタンスのメンバーを修飾し、型名や基本型名を使用して静的メンバーを修飾できます。 これらの修飾子は、ローカル変数やメソッドのパラメータによって隠されているメンバーを明確化するのに役立ちます。 その他のあらゆる場合において、これらの修飾子は省略可能であるため、それらの使用をご自分で決められます。 ReSharperはデフォルトで、省略可能なすべてのメンバー修飾子を冗長であるとみなし、削除を促します。

省略可能な修飾子を使用したい場合は、対応するコードスタイル設定を調整できます。 例えば、静的メソッドを宣言されている型で修飾したくなるかもしれません。

冗長な丸括弧の削除

省略可能な丸括弧のスタイル

多くの場合、式中の丸括弧は省略可能です。 場合によっては、if ((a & b) | c) のように演算の優先順位を明確化するものもありますが、var d = a + (b + c); のように全く無意味でデッドコードを追加するだけのものもあります。 ReSharperは省略可能な丸括弧が有用な場所を明確化してから、冗長な丸括弧をクリーンアップしたり、自動的に丸括弧を追加して不明瞭な演算の優先順位を明確化したりします。

型メンバーのレイアウト

ファイルとタイプのレイアウト(C#のみ)

C#コードの場合、ReSharperはファイルやコード内の型メンバーを自動的に並べ替えることができます。 要素には、その種類とアクセス修飾子に応じて、並べ替え、グループ化、特定の領域へのラッピングなどが実行されます。 ReSharperは2種類のデフォルトレイアウトパターン(並べ替えルールのセット)とスマートなビジュアルエディタをご提供しております。

ショートカットに関する注意

このページに記載されたキーボードショートカットはすべて、ReSharperデフォルトの「Visual Studio」キーマップのものです。 ReSharperの2種類のキーマップの詳細は、ReSharperのドキュメントをご覧ください。