次の方法で共有


コード スタイルの基本設定とコードのクリーンアップ

コード スタイルの基本設定を使用すると、インデント スタイル、タブの幅、行末文字、エンコード、その他の多くの書式設定の選択肢など、コードの側面を制御できます。 コード スタイルの設定は、次の 2 つの方法で定義できます。

[コード クリーンアップ] コマンドと [ドキュメントの書式設定] コマンドを使用して、コード スタイルの基本設定を適用するように Visual Studio を構成することもできます。

EditorConfig ファイルを使用するか、テキスト エディターの .NET オプション ページまたは C/C++ オプション ページで Visual Studio で編集するすべてのコードに対して、プロジェクトごとのコード スタイル設定を定義できます。 C# コードの場合は、 コード クリーンアップ (Visual Studio 2019) コマンドと ドキュメントの書式設定 (Visual Studio 2017) コマンドを使用して、これらのコード スタイルの基本設定を適用するように Visual Studio を構成することもできます。

.NET の場合、コード スタイルの基本設定は .NET コンパイラ プラットフォーム (Roslyn) アナライザーに基づいています。 詳細については、「 .NET コンパイラ プラットフォーム (Roslyn) アナライザーを使用したコード分析」を参照してください。

Visual Studio 2019 バージョン 16.5 以降では、ルール セット ファイルは非推奨となり、.NET コードのコード スタイル構成用の EditorConfig ファイルが優先されます。 詳細については、「 既存のルール セット ファイルを EditorConfig ファイルに変換する」を参照してください。

EditorConfig ファイルのコード スタイル

コード スタイルの設定は、 EditorConfig ファイルをプロジェクトに追加することで指定できます。 EditorConfig ファイルは、Visual Studio パーソナル化アカウントではなく、コードベースに関連付けられます。 EditorConfig ファイルの設定は、[ オプション] ダイアログ ボックスで指定されているコード スタイルよりも優先されます。 リポジトリまたはプロジェクトのすべての共同作成者にコーディング スタイルを適用する場合は、EditorConfig ファイルを使用します。 これらは、チーム のプログラミング環境で一貫性を確保するために特に便利です。

EditorConfig ファイルを追加するには、「 EditorConfig ファイルの追加と削除」を参照してください。

.NET コード スタイル設定のリファレンス情報については、「 コード スタイルの設定」を参照してください。

[オプション] ダイアログ ボックスの C/C++ コード スタイル

インデントや中かっこの位置など、個別のコード書式設定オプションを多数指定できます。 これを行うには、 Tools>Options>Text Editor>C/C++>Code Style>Formatting に移動します (または 「Ctrl + Q 」と入力して「書式設定」を検索します)。 または、 いずれかの ClangFormat スタイル (または独自のカスタム ClangFormat スタイル) を指定することもできます。

[テキスト エディター] の [オプション] ウィンドウのスクリーンショット。

インデントや中かっこの位置など、個別のコード書式設定オプションを多数指定できます。 そのためには、 Tools>Options>Text Editor>C/C++>Formatting に移動します (または 、「Ctrl + Q 」と入力して「書式設定」を検索します)。 または、 いずれかの ClangFormat スタイル (または独自のカスタム ClangFormat スタイル) を指定することもできます。

すべての書式設定オプションの詳細については、「 オプション、テキスト エディター、C/C++、書式設定」を参照してください。

[オプション] ダイアログ ボックスの .NET コード スタイル

[ツール] メニューから [オプション] ダイアログ ボックスを開くと、すべての C# および Visual Basic プロジェクトに対してコード スタイルの基本設定を設定できます。 [オプション] ダイアログ ボックスで、[テキスト エディター] > [C# または Visual Basic] >Code スタイルを選択します。

  • 書式設定スタイルの場合は、[書式設定] でオプション を選択します
  • クイック アクションと IDE コード スタイル ルールに関連付けられているコード スタイルの基本設定では、[全般] または [名前付け] でオプションを選択します。

[ツール] メニューから [オプション] ダイアログ ボックスを開くと、すべての C# および Visual Basic プロジェクトに対してコード スタイルの基本設定を設定できます。 [オプション] ダイアログ ボックスで、[テキスト エディター] > [C# または基本] >Code Style>General を選択します。

オプションを選択すると、一覧の各項目にユーザー設定のプレビューが表示されます。

コード スタイル オプションのスクリーンショット。

コード スタイル オプションのスクリーンショット。

このウィンドウで設定されたオプションは、Visual Studio パーソナル化アカウントに適用でき、特定のプロジェクトまたはコードベースには関連付けられません。 また、継続的インテグレーション (CI) ビルドを含め、ビルド時には適用されません。 コード スタイルの基本設定をプロジェクトに関連付け、ビルド中にスタイルを適用する場合は、プロジェクトに関連付けられている EditorConfig ファイル で基本設定を指定します。

優先順位と重大度

[ 全般 ] および [ 名前付け ] オプション ページのコード スタイル設定ごとに、各行のドロップダウンを使用して 基本設定重大度 の値を設定できます。 重大度は、 リファクタリングのみ提案警告、または エラーに設定できます。

  • [全般] および [名前付け] オプション ページのコード スタイルの基本設定によって、コード スタイルのクイック アクションが決まります。 [クイック アクション] 電球、エラー電球、またはドライバー アイコンは、優先しないスタイルが使用されている場合に表示され、[クイック アクション] ボックスの一覧でオプションを選択して、コードを優先スタイルに自動的に書き換えることができます。
  • 違反をクイック アクションとしてのみ表示し、コードクリーンアップからも除外する場合は、[ 重大度 ] を [ リファクタリングのみ] に設定します。
  • 違反を [エラー一覧] ウィンドウとクイック アクションに表示し、コードのクリーンアップに含める場合は、[ 重大度 ] を [ 提案]、[ 警告]、または [エラー] に設定します。 [エラー一覧] ウィンドウの出力を ビルド + IntelliSense に設定すると、違反は提案 (メッセージ)、警告、またはエラーとして表示されます。 これらは ビルド のみの出力から除外されます。

EditorConfig ファイルの設定は、これらのページで設定されたコード スタイルよりも優先されます。

ビルド時にコード スタイルを適用する

.NET 5.0 RC2 SDK を含む Visual Studio 2019 バージョン 16.8 以降では、すべての . NET プロジェクトのビルドに .NET コーディング規則を適用 できます。 ビルド時に、.NET コード スタイル違反は、"IDE" プレフィックスを持つ警告またはエラーとして表示されます。 これにより、コードベースで一貫性のあるコード スタイルを厳密に適用できます。

コード スタイルを適用する

[オプション] ページでコード スタイルを変更するか、Visual Studio でプロジェクトに EditorConfig ファイルを追加すると、新しい設定に基づいて新しいコード行のみが書式設定されます。 次のいずれかのコマンドを実行しない限り、既存のコードの書式設定は変更されません。

  • コードのクリーンアップ

    Visual Studio エディターで [コード クリーンアップ] を選択するか、Ctrl+K、Ctrl+キーを押します。 このコマンドは、インデントスタイルなどの空白文字の設定や、かっこの選択項目などのコードスタイル設定に適用されます。

  • 文書の書式を設定します。

    編集>Advanced>Format Document を選択するか、既定のプロファイルで Ctrl+KCtrl+D キーを押します。 このコマンドは、インデント スタイルなどの空白の設定にのみ適用されます。

コード クリーンアップを使用してコード スタイルを適用する

EditorConfig ファイルまたは [ コード スタイル ] オプション ページからコード スタイルを適用するには、エディターの下部にある [ コードクリーンアップ ] ボタンを使用します (キーボード: Ctrl+KCtrl+E)。 プロジェクトの EditorConfig ファイルが存在する場合は、それが優先される設定です。

ヒント

[ リファクタリングのみ ] の重大度で構成された .NET ルールは、コードのクリーンアップには参加しませんが、[ クイック アクションとリファクタリング] メニューを使用して個別に適用できます。

コード スタイルを適用するには:

  1. まず、[コード クリーンアップの構成] ダイアログ ボックスで、適用するコード スタイルを (2 つのプロファイルのいずれかで) 構成 します。 このダイアログ ボックスを開くには、コード クリーンアップ のほうきアイコンの横にある展開矢印をクリックし、[ コード クリーンアップの構成] を選択します。 または、[ 分析>Code クリーンアップ ] メニューを使用します。

    コード クリーンアップの構成のスクリーンショット。

    .NET コード クリーンアップ修正プログラムと .NET コード スタイル ルールのマッピングについては、 .NET コードのクリーンアップ設定に関するセクションを参照してください。

    C/C++ オプションには、修正プログラムの名前に C++ が含まれます。

  2. コードクリーンアップを構成したら、次のいずれかの方法を使用してコードクリーンアップを実行します。

    • ほうきアイコンをクリックするか、Ctrl+K、Ctrl+キーを押します。

      コードのクリーンアップの実行のスクリーンショット。

    • プロジェクトまたはソリューション全体でコード クリーンアップを実行するには、 ソリューション エクスプローラーでプロジェクトまたはソリューション名を右クリックし、[ 分析とコード のクリーンアップ] を選択して、[ コードクリーンアップの実行] を選択します。

      プロジェクト全体またはソリューション全体でコードクリーンアップを実行するスクリーンショット。

  3. (省略可能)ファイルを保存するたびにコード スタイルの設定を適用する場合は、[オプション]、[>>] の順に移動し保存時に [コード クリーンアップ プロファイルの実行] を選択します。

C# コード ファイルの場合、Visual Studio のエディターの下部に コード クリーンアップ ボタン (キーボード: Ctrl+KCtrl+E) があり、EditorConfig ファイルまたは [コード スタイル ] オプション ページからコード スタイルを適用します。 プロジェクトの EditorConfig ファイルが存在する場合は、それが優先される設定です。

ヒント

重大度 が None で構成されたルールは、コードのクリーンアップには含まれませんが、[ クイック アクションとリファクタリング] メニューを使用して個別に適用できます。

コード スタイルを適用するには:

  1. まず、[コード クリーンアップの構成] ダイアログ ボックスで、適用するコード スタイルを (2 つのプロファイルのいずれかで) 構成 します。 このダイアログ ボックスを開くには、コード クリーンアップ のほうきアイコンの横にある展開矢印をクリックし、[ コード クリーンアップの構成] を選択します。

    コード クリーンアップの構成のスクリーンショット。

  2. コードクリーンアップを構成したら、次のいずれかの方法を使用してコードクリーンアップを実行します。

    • ほうきアイコンをクリックするか、Ctrl+K、Ctrl+キーを押してコードクリーンアップを実行します。

      コードのクリーンアップの実行のスクリーンショット。

    • プロジェクトまたはソリューション全体でコード クリーンアップを実行するには、 ソリューション エクスプローラーでプロジェクト名またはソリューション名を右クリックし、[ 分析とコード クリーンアップ] を選択してから、[ コード クリーンアップの実行] を選択します。

      プロジェクト全体またはソリューション全体でコードクリーンアップを実行するスクリーンショット。

    ファイルを保存するたびにコード スタイルの設定を適用する場合は、[ 保存時のコード クリーンアップ ] 拡張機能を使用できます。

.NET コードのクリーンアップ設定

ほとんどのコード クリーンアップ設定は、EditorConfig でサポートされている 1 つ以上の .NET コード スタイルにマップされます。 設定の効果を示す例については、次の表のリンクを使用します。

設定 ルール ID またはスタイル オプション
不要なインポートまたは使用を削除する IDE0005
import または using の並べ替え dotnet_sort_system_directives_first
dotnet_separate_import_directive_groups
ファイル ヘッダーの基本設定を適用する ファイルヘッダーテンプレート
未使用の変数を削除する CS0219
オブジェクト作成の基本設定を適用する Visual Basic スタイル簡易的オブジェクト作成を推奨
IsNot 基本設定を適用する visual_basic_style_prefer_isnot_expression
'this' または 'Me' 修飾子を追加する IDE0003-IDE0009
アクセシビリティ修飾子を追加する dotnet_style_require_accessibility_modifiers
順序変更子 IDE0036
フィールドを読み取り可能にする dotnet_style_readonly_field
不要なキャストを削除する IDE0004
オブジェクト/コレクション初期化パラメーターを適用する) dotnet_style_object_initializer(.NETスタイルのオブジェクト初期化子)
using ディレクティブの配置の基本設定を適用する csharp_using_directive_placement
かっこの基本設定を適用する IDE0047-IDE0048
未使用の値の基本設定を適用する IDE0058
言語/フレームワークの種類の基本設定を適用する IDE0049
未使用の抑制を削除する dotnet_remove_unnecessary_suppression_exclusions
ブール式の基本設定の簡略化を適用する dotnet_style_prefer_simplified_boolean_expressions
文字列補間の基本設定を適用する dotnet_style_prefer_simplified_interpolation
未使用のパラメーターを削除する dotnetコード品質の未使用パラメータ
プロパティの基本設定を自動的に適用する dotnet_style_prefer_auto_properties
複合代入の基本設定を適用する dotnet_style_prefer_compound_assignment
coalesce 式の基本設定を適用する dotnet_style_coalesce_expression
条件式の基本設定を適用する dotnet_style_prefer_conditional_expression_over_assignment
dotnet_style_prefer_conditional_expression_over_return
タプル名の基本設定を適用する dotnet_style_explicit_tuple_names
dotnet_style_prefer_inferred_tuple_names
推定された匿名型メンバー名の基本設定を適用する dotnet_style_prefer_inferred_anonymous_type_member_names
null チェックの基本設定を適用する dotnet_style_prefer_is_null_check_over_reference_equality_method
null 値の反映の基本設定を適用する dotnet_style_null_propagation
'var' の基本設定を適用する IDE0007-IDE0008
単一行のコントロール ステートメントに対する必須の波かっこを追加する csharp_prefer_braces
式/ブロック本体の初期設定の適用 式形式のメンバー
インラインの 'out' 変数の初期設定の適用 CSharp スタイルのインライン変数宣言
パターン マッチングの基本設定を適用する パターン マッチングの基本設定
条件付きデリゲート呼び出しの基本設定を適用する csharp_style_conditional_delegate_call
静的ローカル関数の基本設定を適用する csharp_prefer_static_local_function
分解の基本設定を適用する Cシャープスタイルデコンストラクト変数宣言
default(T) 基本設定を適用する csharp_prefer_simple_default_expression
new() 環境設定を適用する csharp_style_implicit_object_creation_when_type_is_apparent(型が明白な場合のC#スタイル:暗黙的なオブジェクト生成)
範囲の基本設定を適用する csharp_style_prefer_range_operator
匿名関数の基本設定に対してローカル関数を適用する csharp_style_pattern_local_over_anonymous_function(C#スタイルで、匿名関数より局所的なパターンを優先する)
パラメーターの null 設定を適用する "Null" 検査設定
ステートメントの基本設定を使用して適用する csharp_prefer_simple_using_statement
throw 式の基本設定を適用する csharp_style_throw_expression