JetBrains Rider 2020.1ヘルプ

コードスタイルC#

WindowsおよびLinux用のファイル | 設定 | エディター | コード・スタイル | C#

macOS Ctrl+Alt+S the Settings/Preferences iconJetBrains Rider | 環境設定 | エディター | コード・スタイル | C#

JetBrains Rider設定のこのページでは、C#のコードスタイルのさまざまな側面を設定できます。コードスタイルのプリファレンスは、次のタブでグループ化されています。

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

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

インデント設定のソース

ソリューションに影響する .editorconfig ファイルがある場合、コードスタイル設定のこのタブと他のタブの環境設定をEditorConfigスタイルで上書きすることができます。ページの少なくとも1つの環境設定が現在のファイルのEditorConfigスタイルによって上書きされる場合は、黄色の警告が表示されます。オーバーライドされた各環境設定も黄色で強調表示されます。例:

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式)を使用した宣言で、末尾のコンマを処理する方法を定義します。詳細については、コードの構文スタイル: 末尾のコンマを参照してください。

波括弧レイアウト

このタブを使用して、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+Enterに対してnullの式をアサートするアクションを提供します。脆弱性分析の設定に応じて、クイックフィックスまたはコンテキストアクションとして表示されます。

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

プロジェクトでコード注釈を使用する場合、JetBrains Riderは、[NotNull]属性を使用して、nullをチェックするパラメーターを修飾します。これにより、JetBrains Riderは、nullオブジェクトが装飾されたパラメーターに渡されたときに通知します。
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コードを生成する方法、および既存のコードを再フォーマットする方法を制御する多数の設定を構成できます。値を調整してページ下部のプレビューペインを確認し、設定がコードにどのように影響するかを確認できます。

ファイルレイアウト

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

その他

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

最終更新日: 2020年7月6日

関連ページ:

レイヤーベースの設定

Rider設定ダイアログ では、ページアイコンを見て、特定のページに使用されている設定管理メカニズムを確認できます。任意のアイコンでマークされていないページは、ユーザープロファイルに保存されているIDE設定をホストします。レイヤーベースの設定はReSharperと互換性があるため、ReSharper...

インデントスタイル

インデントは書式設定スタイルの最も重要な側面の1つです - 他の書式設定が矛盾していても、適切にインデントされたコードは読みやすくなります。JetBrains Riderを使用すると、さまざまな方法で適切なインデントを設定および維持できます。インデント設定のソース:JetBrains Rider設定...

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

コードスタイルの重要な点は、コードの書式設定方法、つまり、空白と空白行を使用してコードブロックを配置および分離する方法、インデントにタブを使用するかどうか、および使用する方法。JetBrains Riderコードフォーマットルールの豊富なセットには、多数のベストプラクティスを考慮に入れたデフォルト設...

EditorConfigを使用する

JetBrains Riderは、EditorConfig形式で定義されたコードフォーマットスタイル、コード構文スタイル、C#の命名スタイル、およびコードインスペクションの重大度レベルをサポートしています。EditorConfigとは何ですか?JetBrains Riderはどのようにそれを拡張しま...

ネーミングスタイル

バージョン2018.3から、JetBrains Riderは既存のコードからC#シンボルの命名規則を自動的に学習を実行できます。命名規則を手動で構成する場合は、JetBrains Rider設定 のページの自動検出ルールを使用するチェックボックスをオフにします。JetBrains Riderは、コー...

コード生成

JetBrains Riderは、定型コードを生成するさまざまな方法を提供します。例:宣言されていないコードシンボルを使用し、これらのシンボルを用途に基づいて自動的に生成したり、型メンバーを生成したりすることができます。現在のファイルで設計時コードインスペクションが有効になっている場合、JetBra...