JetBrains Rider 2024.2 ヘルプ

コードスタイル: C#

JetBrains Rider 設定のこのページでは、C# のコードスタイルのさまざまな側面を構成できます。コードスタイルの設定は、このトピックにリストされているタブにグループ化されています。

コードスタイルルールの自動検出

このボタンをクリックして、現在のソリューションで使用されているフォーマット構文スタイルの分析を開始し、現在の設定とは異なるルールを検出します。その後、検出されたルールを確認し、必要に応じて変更し、目的の設定レイヤーまたは .editorconfig または .clang-format 形式の構成ファイルに保存できます。

タブ、インデント、アライメント

このタブは、入力時または既存のコードの再フォーマット時に、 JetBrains Rider がコードのインデントをどのようにフォーマットするかを指定できます。

インデント設定のソース

ソリューションに影響を与える .editorconfig ファイルがある場合、コードスタイル設定を含むこのタブおよび他のタブの設定が EditorConfig スタイルによってオーバーライドされる可能性があります。ページ上の少なくとも 1 つの設定が現在のファイルの EditorConfig または Clang-Format スタイルによって上書きされる場合、黄色の警告が表示され、上書きされた各設定も黄色でハイライトされます。例:

Code formatting options overridden by EditorConfig styles

複数行の構成要素でインデントと配置を組み合わせる

好みが空白をインデントのために使うべきであると言うなら、JetBrains Rider は複数の構成要素を整列させるために空白も使用します - たとえば、複数行の関数パラメーターが最初のパラメーターによって整列されるとき:

void foo(int firstParameter, int secondParameter) { }

ただし、インデント用にタブを使用する場合は、複数行の構成を整列する方法が異なる場合があります。JetBrains Rider では、新規作成時に既存のコードを再フォーマットする際に、これらの方法のどれを使用するかを選択できます。

タブがインデントに使用されているときの整列方法オプションを使用して、複数行の構成体を配置するための設定を構成できます。

スペースを使用する (推奨、任意のタブサイズで整列して見える)

このオプションを選択すると、JetBrains Rider はインデントにタブを使用し、配置にスペースを使用します。

Use spaces (recommended, looks aligned on any tab size)

これは、タブのサイズが異なるエディターで表示されたときに、2 番目と 3 番目のオプションに整列されたコードが整列しなくなる可能性があるため、推奨されるオプションです。

タブのみを使用する (不正確)

このオプションが選択されていると、JetBrains Rider はインデントと配置の両方にタブを使用しますが、正確な配置にはならない場合があります。

Only use tabs (inaccurate)
最適な塗りつぶしのためにタブとスペースをミックス

このオプションを選択すると、JetBrains Rider はインデントとタブの両方にタブを使用して、正確な位置合わせに必要なスペースを追加します。

Mix tabs and spaces for optimal fill

ネーミング

このタブでは、C# のシンボル命名規則を設定できます。

JetBrains Rider は、コード内のシンボルの希望する命名スタイルを定義、制御、適用できます。一連のルールがあり、各ルールは一連の制約を持つ特定の識別子を対象とします (たとえば、ルールは静的プライベート読み取り専用フィールドを対象にすることができます)。各ルールには、複合語、アンダースコア、接尾辞、接頭辞などの大文字化を定義する 1 つ以上の関連スタイルを含めることができます。

これらのルールは、JetBrains Rider がコード補完およびコード生成機能を使用して新しいコードを生成し、コードテンプレートを適用し、リファクタリングを実行するときに考慮されます。JetBrains Rider は、命名規則の違反を検出して修正するのにも役立ちます。必要に応じて、命名規則の自動チェックを構成または無効にできます

構文スタイル

このタブで構成可能な設定は、コード構文スタイルを適用できます。交換可能な言語構文構成を使用する方法。これらの設定は、JetBrains Rider がコード補完およびコード生成機能を使用して新しいコードを生成し、コードテンプレートを適用し、リファクタリングを実行するときに考慮されます。また、対応する設定でコードのクリーンアップを使用して、既存のコードに適用することもできます。

通知するセレクターの設定には、対応するコードインスペクションがあり、インスペクションされたスコープの構文スタイルのこの側面が優先スタイルと異なる場合に通知します。セレクターを使用して、インスペクションの重大度レベルを構成できます。

宣言における 'var' の使用箇所

このセクションの設定では、暗黙的に型指定されたローカル変数var キーワードとも呼ばれます)の使用方法を定義します。

タイプごとに 'var' または明示的なタイプを使用する異なる設定を設定できます。

  • ビルトインタイプの場合C# ビルトインタイプに適用されます。

  • 単純型の場合 — ジェネリクスパラメーターのない型に適用されます。

  • 他の場所 — ジェネリクス型と脱構築宣言に適用されます。

これらの設定ごとに、「var」、明示的なタイプ、明らかなときに 'var' の使用を選択できます。

詳細は、コードの構文スタイル: 暗黙的 / 明示的な型指定 ('var' キーワード) を参照してください。

型の証拠には Roslyn(Visual Studio)ロジックを優先する

「var」キーワードと明示的なタイプを使用する設定を構成する場合、明確な場合は 'var' を使用するを選択できます。このオプションは自明のように見えますが、場合によっては「明らか」と見なされるものとそうではないものが不明な場合があります。

それとは別に、両方の製品が「var」キーワードまたは明示的な型の使用を提案する場合、JetBrains Rider と Visual Studio によって明白(明白)と見なされるものの間にはいくつかの違いがあります。

このチェックボックスを使用して、上記のオプションで明確な場合は 'var' を使用するが選択されたときに「var」または明示的なタイプを提案する Visual Studio ロジックを適用します。

JetBrains Rider ロジックと Visual Studio ロジックの違いについては、「明確な場合は 'var' を使用する: 明らかと考えられるものは何ですか? 」を参照してください。

このチェックボックスは、EditorConfigcsharp_style_var_when_type_is_apparent プロパティtrue に設定されていて、ある程度の重大度レベルがある場合に自動的に有効になります。例: csharp_style_var_when_type_is_apparent = true:warning

展開された変数の宣言を別にすること

デフォルトでは、JetBrains Rider は、var (x, y) = GetTuple(); などの分解宣言で複数の var の結合表記を提案します。展開された変数の宣言を別にすることを選択して、(var x, var y) = GetTuple(); などの個別の表記を選択できます。

破棄には 'var' キーワードを使用する

デフォルトでは、JetBrains Rider は、破棄にスタンドアロン _ を使用することを提案します(例: (_, _) = (0, 1);)。破棄には 'var' キーワードを使用するを選択して、必要に応じて破棄を伴う var を常に使用することで、_ という名前のスコープ内の変数との競合がないことを確認できます。

インスタンスメンバーの資格

このセクションの設定では、'this' 修飾子の使用方法を定義します。詳細については、コードの構文スタイル: オプションのメンバー限定子を参照してください。

静的メンバー資格

このセクションの設定では、静的メンバーを修飾する方法を定義します。詳細については、コードの構文スタイル: オプションのメンバー限定子を参照してください。

ビルトイン型

このセクションの設定では、C# ビルトインタイプを参照する方法を定義します。C# キーワードまたは CLR タイプ名のいずれかを使用できます。詳細については、「コードの構文スタイル: 組み込み型参照」を参照してください。

参照修飾および 'using' ディレクティブ

このセクションの設定は、名前空間インポートのスタイルを定義します

  • 完全修飾参照を推奨する — インポートされたタイプに名前空間インポートディレクティブではなく完全修飾名を使用する場合は、このチェックボックスを選択します。

  • 最も深いスコープに using ディレクティブを追加する — このチェックボックスが選択されている場合、名前空間インポートディレクティブは、インポートされたタイプが使用される名前空間内に追加されます。それ以外の場合、インポートディレクティブはファイルの先頭に追加されます。

  • 'using' ディレクティブをソートするときは、'System.*' および 'Windows.*' の名前空間を最初に配置してください — このチェックボックスを選択すると、using System.Linq; などの 'using' ディレクティブは、ソート時に他の using ディレクティブの上に配置されます。それ以外の場合、これらのディレクティブは他のディレクティブとアルファベット順にソートされます。

  • ネストしたスコープで完全修飾名を使用することを推奨する — このチェックボックスが選択されている場合、インポートされた型の完全修飾名がネストされた型と名前空間で優先されます。

  • エイリアスディレクティブの使用を許可 — このチェックボックスを選択すると、完全修飾名前空間名ではなく、名前空間インポートディレクティブでエイリアスを使用できます。

  • 'global ::' 接頭辞を許可する — このチェックボックスが選択されている場合、global:: 接頭辞は global::System.String と同様に削除されません。詳細については、「:: オペレーター - 名前空間のエイリアス演算子」を参照してください。

JetBrains Rider オプションのコード編集 | C# | 名前空間のインポートページでは、名前空間のインポートに関連する他の多くのオプションを設定できます。

修飾子

このセクションの設定では、型とメンバーの修飾子を配置する方法を定義します。詳細については、コードの構文スタイル: 修飾子を参照してください。

引数

このセクションの環境設定では、特定の種類のパラメーターに対して名前付き引数または位置引数を適用する方法を定義できます。詳細については、コードの構文スタイル: 名前付き / 位置引数を参照してください。

丸括弧

このセクションの環境設定では、演算の優先順位を明確にするのに役立つ場合に、オプションの括弧をいつ削除または追加するかを定義できます。詳細については、コードの構文スタイル: オプションの括弧を参照してください。

波括弧

このセクションの設定では、単一のネストされたステートメントに中括弧が必要なステートメントを定義できます。詳細については、コードの構文スタイル: 1 つのネストされた文に対する波括弧を参照してください。

コード本体

このセクションの設定では、どの種類のメンバーを式本体で宣言し、どの種類のメンバーをブロック本体で宣言するかを定義できます。詳細については、式に基づく関数の設定を構成するを参照してください。

デフォルトでは、JetBrains Rider はヒューリスティックを適用して、メソッドのブロック本体を式本体に変換するかどうかを決定します。とりわけ、これは、JetBrains Rider が void メソッドおよびラムダ式を含むメソッドの式本体を提案しないことを意味します。

スタイルヒューリスティックを適用するチェックボックスをオフにすると、このロジックを簡略化できます。この場合、ロジックは単純です。ある種のメンバーに式本体を使用することを選択した場合、この種類のメンバーの宣言が単一のステートメントで構成されていると、JetBrains Rider は式本体を提案します。

名前空間オプションを使用すると、単一の名前空間宣言を含むファイルでファイルスコープの名前空間を使用するかどうかを選択できます。

属性

このセクションの設定では、複数の属性を配置する方法を定義します。詳細については、コードの構文スタイル: 複数の属性を参照してください。

末尾のコンマ

このセクションの設定では、複数の項目や同様の構成要素 (オブジェクト、配列、コレクションの初期化子、列挙型、switch 式) を含む宣言内の末尾のコンマの処理方法を定義します。詳細については、コードの構文スタイル: 末尾のコンマを参照してください。

オブジェクトの作成

このセクションの設定では、new 演算子を使用して新しいオブジェクトを作成するときに、オプションの型指定を追加するかどうかを定義します。詳細については、コードの構文スタイル: オブジェクトの作成(「new()」と「新しい T()」)を参照してください。

デフォルト値

このセクションの設定では、default 式でオプションの型指定 (T) を使用するかどうかを定義します。詳細については、コードの構文スタイル: デフォルト値の式('default' と 'default(T)')を参照してください。

パターン

このセクションの null チェックパターンスタイルは、パターンマッチング式 : { } または not null 式内の null チェックのスタイルを定義します。詳細については、コードの構文スタイル: null チェックパターンを参照してください。

波括弧レイアウト

このタブを使用して、JetBrains Rider が新しいコードを生成し、既存のコードを再フォーマットするときにブレースを配置する方法を調整します。特に、if または for 演算子の後にブレースを配置する方法はいくつかあります。

すべての項目について、ページの下部にプレビューペインがあり、特定の設定を調整した後で変更を確認できます。

空白行

このタブでは、JetBrains Rider が名前空間、メンバー、領域、インポートディレクティブのグループの周囲の空白行の数を増やすか減らすかを設定します。値を調整し、ページの下部にあるプレビューペインをチェックして、環境設定がコードにどのように影響するかを確認できます。

既存の書式を保持するセクションのオプションは、JetBrains Rider が既存のコードを再フォーマットするときにのみ適用されますが、空白行セクションには、新しいコードを入力したときにも有効になるオプションが含まれます。

改行および折り返し

このタブを使用して、JetBrains Rider が特定の言語構造の前後に改行を追加または削除する方法、および次でハードラップ設定で指定された長さを超える長い行を折り返すかどうかを構成します。値を調整し、ページの下部にあるプレビューペインをチェックして、設定がコードにどのように影響するかを確認できます。

名前が既存の維持 ... で始まる設定では、同じグループ内の他の設定の既存のフォーマットを維持できることに注意してください。

スペース

このタブを使用して、さまざまなコード構成でスペースを挿入または削除する方法を構成します。値を調整し、ページの下部にあるプレビューペインをチェックして、設定がコードにどのように影響するかを確認できます。

null チェック

このタブを使用して、例外およびアサーションの null チェックルーチンの生成をカスタマイズします。

null は例外とアサーションをチェックする

null 参照であるオブジェクトに遭遇することがプログラムで重大であり、例外をスローすることによってログに記録されるか、シグナルが通知される状況があります。ここでの典型的な例は、null オブジェクトを受け入れるように設計されていない関数に ArgumentNullException を投げることです。

例外とアサーションの null チェックを生成する

これらの種類の null チェックは、次の方法で生成できます。

  • パラメーターまたは式で Alt+Enter を押して、対応するコンテキストアクションを選択します。

    JetBrains Rider: Checking parameter for null
  • パラメーターが [NotNull] 属性でマークされている場合は、パラメーター名またはパラメーター型の直後にキャレットを置き、! を押すことができます。

    private void Foo([NotNull] object/*!*/ arg/*!*/)
  • コンストラクターAlt+Insert | コンストラクター)を生成するときは、ダイアログで null のパラメーターを確認するを選択します。

  • NULL 可能な式の null のアサーションを生成するために、JetBrains Rider は Alt+Enternull の式をアサートするアクションを提供します。NULL 可能性分析の設定に応じて、クイックフィックスまたはコンテキストアクションとして表示されます。

    JetBrains Rider: Asserting expression for null

    JetBrains Rider が式が決して null でないと推論するなら、このアクションは利用できなくなります。

プロジェクトでコードアノテーションを使用する場合、JetBrains Rider は、null をチェックするパラメーターを [NotNull] 属性で装飾します。これにより、装飾されたパラメーターに null オブジェクトが渡されたときに JetBrains Rider が通知します。

JetBrains Rider 設定 Ctrl+Alt+Sエディター | インスペクション設定 | コードアノテーションページのアノテーションを自動的に伝播するチェックボックスをオフにすると、[NotNull] の追加を無効にできます。

例外とアサーションの null チェックの設定

この種類の null チェックはさまざまな方法で記述できるため、JetBrains Rider 設定 Ctrl+Alt+Sエディター | コードスタイル | C# | null チェックページで構成できます。これは、対応するアクションの Alt+Enter メニューからもアクセスできます。

JetBrains Rider: a shortcut for configuring null-check pattern

この設定ページには、事前定義されたすべての null チェックパターンが優先度順に一覧表示され、優先度の高いパターンが上部に表示されます。JetBrains Rider が null チェックを生成すると、現在の C# バージョンを考慮して、コンテキストに意味的に適した最も優先度の高いパターンが使用されます。

デフォルトでは、JetBrains Rider は、関連付けられたコンパイラーに基づいて C# バージョンを自動的に検出します。ただし、プロジェクトのターゲット C# バージョンを明示的に指定できます。ソリューションエクスプローラーでプロジェクトの Alt+Enter を押し、プロジェクトプロパティダイアログのアプリケーションページで言語バージョンセレクターを使用します。

ソリューション内のすべてのプロジェクトに C# バージョンを設定するには、ここで説明するように、ソリューションディレクトリの Directory.Build.props ファイルでそれを指定します。

例: デフォルト構成では、「throw expression」パターン $EXPR$ ?? new System.ArgumentNullException($NAME$); は「classic」throw ステートメント if ($EXPR$ == null) throw new System.ArgumentNullException($NAME$); よりも高い優先度を持ちます。ただし、現在のコンテキストで式が許可されていない場合、JetBrains Rider は最初のパターンをスキップし、2 番目のパターンを使用します。

// Press Alt+Enter on 'arg' and choose 'Check parameter for null' private void Foo(object arg) { // as expression is not allowed here, the statement is generated: if (arg == null) throw new ArgumentNullException(nameof(arg)); } // However, in the following case the expression is already there private object myField; private void Foo(object arg) { myField = arg; } // so JetBrains Rider will use the first pattern: private object myField; private void Foo(object arg) { myField = arg ?? throw new ArgumentNullException(nameof(arg)); }

同じことがアサーションの生成にも当てはまります。JetBrains Rider は、アサーションに使用できるでマークされた最初のパターンを使用します。

NULL チェックを生成する設定がある場合は、設定ページの上へ移動 Alt+U/ 下へ移動 Alt+D ボタンを使用して、好みのパターンの優先順位を上げます。

例外とアサーションのカスタム null チェックの作成

コードベースが null チェックを処理するための専用のヘルパーメソッドを提供している場合は、設定ページで太字でハイライトされている 2 つのカスタムパターン(カスタム (ステートメント)カスタム (式))を編集して独自の null チェックパターンを作成できます。

JetBrains Rider: custom patterns for null checking

デフォルトでは、これらの 2 つのパターンは最も低い優先順位を持ちます。つまり、生成に使用されることはありません。使用する場合は、優先順位を上げるために移動してください。

リストでカスタムパターンを選択すると、$EXPR$$NAME$$MESSAGE$ プレースホルダーを使用してページ下部のテキストフィールドで編集できます。パターンが有効である限り、JetBrains Rider はテキストフィールドに対応するアイコンを表示します。

アサーションに使用できるチェックボックスをオンにして、パターンを null の式をアサートするアクションで機能させることもできます。

XML ドキュメント

このタブでは、JetBrains Rider が新しい XML Doc Comments コードを生成する方法、および既存のコードを再フォーマットする方法を制御する多数の設定を構成できます。値を調整してページ下部のプレビューペインを確認し、設定がコードにどのように影響するかを確認できます。

ファイルレイアウト

このタブには、コードをクリーンアップするときに型メンバーを並べ替える方法を定義するパターンが含まれています。デフォルトのパターンの 1 つを使用することも、独自のパターンを作成することもできます。詳細については、ファイルとタイプのレイアウトパターンでメンバーを再配置するを参照してください。

その他

このタブは、JetBrains Rider が新しいコードを処理し、既存のコードを再フォーマットする方法を制御する多くの追加設定を構成できます。値を調整し、ページ下部のプレビューペインを確認して、設定がコードにどのように影響するかを確認できます。

関連ページ:

レイヤーベースの設定

Rider 設定ダイアログでは、ページアイコンを見て、特定のページに使用されている設定管理メカニズムを確認できます。任意のアイコンでマークされていないページは、ユーザープロファイルに保存されている IDE 設定をホストします。レイヤーベースの設定は ReSharper と互換性があるため、ReSharper を使用している場合、チームメンバーのいずれかがそれを使用している場合、Rider は ReSharper で構成した設定を読み取って適用できます。「ソリューションパーソナル」および「ソリュ...

スペース、タブ、改行を使用してコードをフォーマットする

コードスタイルの重要な側面は、コードのフォーマット方法、つまり、空白、タブ、改行を使用してコード要素を配置する方法、インデントにタブを使用するかどうかと方法、長い行を折り返すかどうかと方法などです。オン。JetBrains Rider コードのフォーマットルールの広範なセットには、多数のベストプラクティスを考慮したデフォルト設定があります。フォーマットルールのすべての詳細を構成し、コードにルールを適用できます。これらのルールは、JetBrains Rider がコード補完およびコード生成機能を使...

構文スタイル

コードスタイルの側面の 1 つは、互換性のある言語構文構造を使用する方法です。例: 以下の 2 つのメソッド定義は、コンパイラーの観点からは同じですが、構文構造の選択により、それらは異なって見えます。[Conditional("DEBUG")] [Test] static public void Foo(String str) { foreach (Char ch in str) { System.Console.WriteLine(value: ch); } }[Test, Condition...

EditorConfig を使用する

JetBrains Rider は、EditorConfig 形式で定義されたコード形式スタイル、コード構文スタイル、C# の命名スタイル、コードインスペクション重大度レベルをサポートします。EditorConfig とは何ですか? JetBrains Rider はどのようにそれを拡張しますか? :EditorConfig は、同じコードで作業しているチームメンバー間、およびメンバーが使用する可能性のあるさまざまな IDE 間で一貫したコードスタイルを定義および維持するために使用される構成ファイ...

Clang 形式の使用

C++ ファイルでは、JetBrains Rider は Clang 形式で定義されたフォーマットスタイルをサポートします。デフォルトでは、Clang-Format 構成ファイルは、フォーマットスタイル設定のソースとして自動的に使用されます。Clang フォーマットとは何ですか ? JetBrains Rider はどのようにサポートしていますか ?:Clang-Format は、広く使用されている C++ コードフォーマッタです。YAML 形式のファイル (.clang-format または _cl...

フォーマットルールを適用する

編集および貼り付けられたコードの自動フォーマット:エディターでコードを入力すると、JetBrains Rider はセミコロンを入力するとすぐに式を再フォーマットし、閉じ括弧を入力するとすぐにコードのブロックを再フォーマットします。必要に応じて、JetBrains Rider 設定のページでこれらの種類の自動フォーマットを無効にすることができます。JetBrains Rider では、コードを貼り付けるときにフォーマット規則を自動的に適用することもできます。デフォルトでは、貼り付けられたコー...