JetBrains Rider 2020.3 ヘルプ

コードスタイル: 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::System.String のように、global:: プレフィックスは削除されません。詳細については、使い方: グローバル名前空間エイリアスを使用する(英語)を参照してください。

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

修飾子 このセクションの設定では、型とメンバーの修飾子を整列する方法を定義します。詳細は、コードの構文スタイル: 修飾子を参照してください。
引数 このセクションの設定では、特定の型のパラメーターに対して、名前付き引数または定位置引数をどのように強制するかを定義できます。詳細は、コードの構文スタイル: 名前付き / 位置引数を参照してください。
丸括弧 このセクションの設定では、操作の優先順位を明確にするのに役立つ場合は、オプションの括弧を削除または追加する必要がある場合を定義できます。詳細は、コードの構文スタイル: オプションの括弧を参照してください。
波括弧 このセクションの設定では、単一のネストされたステートメントに対して波括弧が必要なステートメントを定義できます。詳細は、コードの構文スタイル: 1 つのネストされた文に対する波括弧を参照してください。
コード本体

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

デフォルトでは、JetBrains Rider はヒューリスティックを適用して、メソッドのブロック本体を式本体に変換するかどうかを決定します。特に、これは、JetBrains Rider が void メソッドおよびラムダ式を含むメソッドの式本体を提案しないことを意味します。
スタイルヒューリスティックを適用するチェックボックスをオフにすることで、このロジックを簡略化できます。この場合、ロジックは単純です。ある種類のメンバーに式本体を使用することを選択した場合、この種類のメンバーの宣言が単一のステートメントで構成される場合、JetBrains Rider は式本体を提案します。

属性 このセクションの設定では、複数の属性を整理する方法を定義しています。詳細は、コードの構文スタイル: 複数の属性を参照してください。
末尾のコンマ このセクションの設定は、複数のアイテムと同様の構成(オブジェクト、配列、コレクション初期化子、列挙型と switch 式)を使用した宣言で、末尾のコンマを処理する方法を定義します。詳細については、コードの構文スタイル: 末尾のコンマを参照してください。
オブジェクトの作成 このセクションの設定では、new 演算子を使用して新しいオブジェクトを作成するときに、オプションの型指定を追加するかどうかを定義します。詳細については、コードの構文スタイル: オブジェクトの作成(「new()」と「新しい T()」)を参照してください。
デフォルト値 このセクションの設定では、default 式でオプションの型指定 (T) を使用するかどうかを定義します。詳細については、コードの構文スタイル: デフォルト値の式('default' と 'default(T)')を参照してください。

波括弧レイアウト

このタブを使用して、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 は、[NotNull] 属性を使用して、null かどうかを確認するパラメーターを修飾します。これにより、装飾されたパラメーターに 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 を押し、プロジェクトプロパティダイアログのアプリケーションページで言語バージョンセレクターを使用します。

例: デフォルト構成では、「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 で構成した設定を読み取って適用できます。「ソリューションパーソナル」および「ソリューションチ...

EditorConfig を使用する

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

Clang 形式の使用

この機能は現在、Unreal Engine 用 Rider の初期プレビュープログラムを介してのみ利用できます。Clang-Format とは何ですか? そして JetBrains Rider はそれをどのようにサポートしていますか? :Clang-Format は広く使われている C++ コードフォーマッタです。それは YAML フォーマットのファイル(.clang-format または _clang-format)でコードスタイルオプションを定義するオプションを提供するため、これらのファイルは多く...

インデントスタイル

インデントはフォーマットスタイルの最も重要な側面の 1 つです - 他のフォーマットが矛盾していても、適切にインデントされたコードは読みやすくなります。JetBrains Rider を使用すると、さまざまな方法で適切なインデントを設定および維持できます。インデント設定のソース:JetBrains Rider 設定のページでインデントスタイルを構成できます。現在のファイルに影響する EditorConfig ファイルがある場合、およびプロパティは JetBrains Rider インデント設定を...

コードフォーマットルールの管理と適用

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

ネーミングスタイル

バージョン 2018.3 から、JetBrains Rider は既存のコードから C# シンボルの命名規則を自動的に学習を実行できます。命名規則を手動で構成する場合は、JetBrains Rider 設定のページの自動検出ルールを使用するチェックボックスをオフにします。JetBrains Rider は、コード内のシンボルの命名スタイルを定義、制御、適用できます。命名スタイルはルールのセットとして実装され、それぞれが特定の識別子を制約のセットでターゲットにします(たとえば、ルールは静的なプラ...