コードスタイル: C#
この JetBrains Rider 設定ページでは、C# のコードスタイルのさまざまな側面を構成できます。 コードスタイルの設定は、このトピックにリストされているタブにグループ化されています。
コードスタイルルールの自動検出
このボタンをクリックすると、現在のソリューションで使用されている フォーマットと 構文スタイルの分析を開始し、現在の設定と異なるルールを検出します。 その後、検出されたルールを確認し、必要に応じて変更し、目的の 設定レイヤーまたは .editorconfig または .clang-format 形式の構成ファイルに保存できます。
タブ、インデント、位置合わせ
このタブでは、入力時や 既存コードの整形時に JetBrains Rider が コードのインデントをどのようにフォーマットするか指定できます。
インデント設定のソース
ソリューションに影響を与える .editorconfig ファイルがある場合、このタブおよび他のコードスタイル設定タブ の環境設定は EditorConfig スタイルによってオーバーライドされることがあります。 ページ上の少なくとも 1 つの設定が現在のファイルの EditorConfig または Clang-Format スタイルによって上書きされる場合、黄色の警告が表示され、上書きされた各設定も黄色でハイライトされます。 例えば:

複数行の構成要素でインデントと配置を組み合わせる
環境設定でインデントに空白を使用すると指定されている場合、JetBrains Rider も複数の構成要素の位置合わせに空白を使用します。たとえば、複数行の関数パラメーターが最初のパラメーターで位置合わせされる場合など:
ただし、インデント用にタブを使用する場合は、複数行の構成を整列する方法が異なる場合があります。 JetBrains Rider では、新規作成や既存コードの再フォーマット時に、これらの方法のどれを使うか選択できます。
タブがインデントに使用されている場合の整列方法 オプションを使用して、複数行の構成体を配置するための設定を構成できます。
- スペースを使用する (推奨、任意のタブサイズで整列して見える)
このオプションを選択すると、JetBrains Rider はインデントにタブ、位置合わせにスペースを使用します:

これは、タブのサイズが異なるエディターで表示されたときに、2 番目と 3 番目のオプションに整列されたコードが整列しなくなる可能性があるため、推奨されるオプションです。
- タブのみを使用する(不正確)
このオプションを選択すると、JetBrains Rider はインデントと位置合わせの両方にタブを使用しますが、正確な位置合わせにならない場合があります:

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

命名(Naming)
このタブでは、C# の シンボル命名規則を設定できます。
JetBrains Rider は、コード内のシンボルに希望する命名スタイルを定義、制御、適用するのを支援します。 一連のルールがあり、各ルールは一連の制約を持つ特定の識別子を対象とします (たとえば、ルールは静的プライベート読み取り専用フィールドを対象にすることができます)。 各ルールには、複合語、アンダースコア、接尾辞、接頭辞などの大文字化を定義する 1 つ以上の関連スタイルを含めることができます。
これらのルールは、JetBrains Rider が コード補完や コード生成機能で新しいコードを作成し、 コードテンプレートを適用し、 リファクタリングを実行する際に考慮されます。 JetBrains Rider は命名規則違反を 検出して修正するのにも役立ちます。 必要に応じて、命名規則の自動チェックを 構成または無効にできます。
構文スタイル
このタブで設定できる環境設定により、 コード構文スタイル 、すなわち互換可能な言語構文の使い方を強制できます。 これらの環境設定は、JetBrains Rider が コード補完や コード生成機能で新しいコードを作成し、 コードテンプレートを適用し、 リファクタリングを実行するときに考慮されます。 対応する設定で コードのクリーンアップを使うことで、既存のコードにも適用できます。
通知する セレクターの設定には、対応するコードインスペクションがあり、インスペクションされたスコープの構文スタイルのこの側面が優先スタイルと異なる場合に通知します。 セレクターを使用して、インスペクションの 重大度レベルを構成できます。
宣言における 'var' の使用 | このセクションの設定では、 暗黙的に型指定されたローカル変数 ( タイプごとに 'var' または明示的なタイプを使用する異なる設定を設定できます。
これらの設定ごとに、「var」、明示的なタイプ、 明らかなときに 'var' の使用を選択できます。 詳細については、 コードの構文スタイル: 暗黙的 / 明示的な型指定 ('var' キーワード) を参照してください。 |
型の判定には Roslyn(Visual Studio)ロジックを優先 | 「var」キーワードと明示的なタイプを使用する 設定を構成する場合、 明らかな場合は 'var' を使用 を選択できます。 このオプションは自明のように見えますが、場合によっては「明らか」と見なされるものとそうではないものが不明な場合があります。 それとは別に、両製品が「var」キーワードまたは明示的な型の使用を提案する場合、JetBrains Rider と Visual Studio で明白(明白)と見なされる内容にはいくつか違いがあります。 このチェックボックスを使用して、上記のオプションで 明らかな場合は 'var' を使用 が選択されたときに「var」または明示的なタイプを提案する Visual Studio ロジックを適用します。 JetBrains Rider ロジックと Visual Studio ロジックの違いについては、 明確な場合は 'var' を使用する: 明らかと考えられるものは何ですか? を参照してください。 このオプションは、 EditorConfig の |
展開された変数の宣言を別にすることを推奨 | デフォルトでは、JetBrains Rider は複数の |
破棄の場合は 'var' キーワードを使用 | デフォルトでは、JetBrains Rider は 破棄用にスタンドアロン |
インスタンスメンバーの資格 | このセクションの設定では、'this' 修飾子の使用方法を定義します。 詳細については、 コードの構文スタイル: オプションのメンバー限定子 を参照してください。 |
静的メンバー資格 | このセクションの設定では、静的メンバーを修飾する方法を定義します。 詳細については、 コードの構文スタイル: オプションのメンバー限定子 を参照してください。 |
組み込み型 | このセクションの環境設定では、 C# 組み込み型の参照方法を定義します。C# キーワードまたは CLR 型名を使用できます。 詳細については、 コードの構文スタイル: 組み込み型参照 を参照してください。 |
参照修飾および 'using' ディレクティブ | このセクションの設定は、 名前空間インポートのスタイルを定義します。
JetBrains Rider オプションの ページで、名前空間インポートに関連する他の多くのオプションを設定できます。 |
修飾子 | このセクションの設定では、型とメンバーの修飾子を配置する方法を定義します。 詳細については、 コードの構文スタイル: 修飾子 を参照してください。 |
引数 | このセクションの環境設定では、特定の種類のパラメーターに対して名前付き引数または位置引数を適用する方法を定義できます。 詳細については、 コードの構文スタイル: 名前付き / 位置引数 を参照してください。 |
丸括弧 | このセクションの環境設定では、演算の優先順位を明確にするのに役立つ場合に、オプションの括弧をいつ削除または追加するかを定義できます。 詳細については、 コードの構文スタイル: オプションの括弧 を参照してください。 |
波括弧 | このセクションの設定では、単一のネストされたステートメントに中括弧が必要なステートメントを定義できます。 詳細については、 コードの構文スタイル: 1 つのネストされた文に対する波括弧 を参照してください。 |
コード本体 | このセクションの設定では、どの種類のメンバーを式本体で宣言し、どの種類のメンバーをブロック本体で宣言するかを定義できます。 詳細については、 式に基づく関数の設定を構成する を参照してください。 デフォルトでは、JetBrains Rider はヒューリスティックを適用して、メソッドのブロック本体を式本体に変換するかどうかを判断します。 とりわけ、これは、JetBrains Rider が このロジックを単純化するには、 スタイルヒューリスティックを適用する チェックボックスをオフにします。 この場合、ロジックはシンプルです。ある種類のメンバーに対して式ボディを使用するように選択すると、メンバーの宣言が単一のステートメントで構成されている場合、JetBrains Rider が式ボディを提案します。 名前空間 オプションを使用すると、単一の名前空間宣言を含むファイルで ファイルスコープの名前空間を使用するかどうかを選択できます。 |
属性 | このセクションの設定では、複数の属性を配置する方法を定義します。 詳細については、 コードの構文スタイル: 複数の属性 を参照してください。 |
末尾のコンマ | このセクションの設定では、複数の項目や同様の構成要素 (オブジェクト、配列、コレクションの初期化子、列挙型、switch 式) を含む宣言内の末尾のコンマの処理方法を定義します。 詳細については、 コードの構文スタイル: 末尾のコンマ を参照してください。 |
オブジェクトの作成 | このセクションの設定では、 |
デフォルト値 | このセクションの設定では、 |
パターン | このセクションの Null チェックパターンスタイル は、 パターンマッチング式: |
波括弧レイアウト
このタブを使って、JetBrains Rider が新しいコードを生成したり 既存コードを整形したりする際の波括弧の配置方法を調整できます。特に、 if や for 演算子の後の波括弧の配置方法を複数から選択できます。
すべての項目について、ページの下部にプレビューペインがあり、特定の設定を調整した後で変更を確認できます。
空白行
このタブでは、JetBrains Rider が名前空間やメンバー、領域、インポートディレクティブのグループの周囲の空白行数を増減させるかどうかを設定できます。 値を調整し、ページ下部のプレビューペインを確認して、設定がコードにどのように影響するかを確認できます。
既存のフォーマットを保持する セクションのオプションは、JetBrains Rider が既存コードを 再フォーマットする場合のみ適用され、 空白行 セクションには新しいコード入力時にも有効なオプションが含まれます。
改行および折り返し
このタブを使用して、JetBrains Rider が特定の言語構造の前後に改行を追加または削除する方法や、 次でハードラップを適用 環境設定で指定された長さを超える長い行を折り返すかどうかを設定します。 値を調整し、ページ下部のプレビューペインを確認して、設定がコードにどのように影響するかを確認できます。
名前が 既存の維持 ... で始まる設定では、同じグループ内の他の設定の 既存のフォーマットを維持できることに注意してください。
Space
このタブを使用して、さまざまなコード構成でスペースを挿入または削除する方法を構成します。 値を調整し、ページ下部のプレビューペインを確認して、設定がコードにどのように影響するかを確認できます。
Null チェック
このタブを使用して、例外およびアサーションの null チェックルーチンの生成をカスタマイズします。
null は例外とアサーションをチェックする
null 参照であるオブジェクトに遭遇することがプログラムで重大であり、例外をスローすることによってログに記録されるか、シグナルが通知される状況があります。 ここでの典型的な例は、 null オブジェクトを受け入れるように設計されていない関数に ArgumentNullException を投げることです。
例外とアサーションの null チェックを生成する
これらの種類の null チェックは、次の方法で生成できます。
パラメーターまたは式で Alt+Enter を押して、対応する コンテキストアクションを選択します:

パラメーターが [NotNull]属性でマークされている場合、パラメーター名またはパラメーター型の直後にキャレットを置き、 ! を押すことができます:
private void Foo([NotNull] object/*!*/ arg/*!*/)コンストラクターを生成するとき(Alt+Insert )、ダイアログで null のパラメーターを確認する を選択します。
任意の null 許容式に対して
nullのアサーションを生成するには、JetBrains Rider が null の式をアサートする アクションを Alt+Enter で提供します。 null 許容性分析の設定に応じて、 クイックフィックスまたは コンテキストアクションとして表示されます。
JetBrains Rider がその式が
nullになることは決してないと推論した場合、このアクションは使用できなくなります。
プロジェクトでコードアノテーションを使用する場合、JetBrains Rider は null をチェックするパラメーターに [NotNull] 属性を付与します。 これにより、null オブジェクトが装飾されたパラメーターに渡されたときに JetBrains Rider が通知します。
[NotNull] の追加は、JetBrains Rider 設定 Ctrl+Alt+S の ページにある アノテーションを自動的に伝播する チェックボックスをオフにすることで無効化できます。
例外とアサーションの null チェックの設定
この種類の null チェックはさまざまな方法で記述できるため、JetBrains Rider 設定 Ctrl+Alt+S の ページで設定できます。また、対応するアクションの Alt+Enter メニューからもアクセス可能です:

この 設定 ページには、事前定義された null チェックパターンがすべて優先度順に一覧表示され、優先度の高いパターンが上部に表示されます。 JetBrains Rider が null チェックを生成するときは、現在の C# バージョンを考慮し、コンテキストに意味的に適した最も優先度の高いパターンを使用します。
JetBrains Rider は、プロジェクトファイル *.csproj で指定された C# バージョンを自動的に検出して使用します。
バージョンを変更するには、エディターでプロジェクトファイルを開き、 <LangVersion> 属性を変更します。
ソリューション内のすべてのプロジェクトに C# バージョンを設定するには、ソリューションディレクトリ内の Directory.Build.props ファイルで こちらに記載の手順に従って指定してください。 .csproj ファイルで定義された言語バージョンは、 Directory.Build.props ファイルで指定されたバージョンを上書きすることに注意してください。
例: デフォルト構成では、「throw expression」パターン $EXPR$ ?? new System.ArgumentNullException($NAME$); は「classic」throw ステートメント if ($EXPR$ == null) throw new System.ArgumentNullException($NAME$); よりも高い優先度を持ちます。 ただし、現在のコンテキストで式が許可されていない場合、JetBrains Rider は最初のパターンをスキップし、2 番目のパターンを使用します:
アサーションを生成する場合も同様です。JetBrains Rider は アサーションに使用できる が付けられた最初のパターンを使用します。
null チェックを生成する際に好みがある場合は、設定 ページの 上へ移動 Alt+U / 下へ移動 Alt+D ボタンを使って、優先したいパターンの優先順位を上げてください。
例外とアサーションのカスタム null チェックの作成
コードベースが null チェックを処理するための専用のコード編集ヘルパー メソッドを提供している場合は、設定 ページで太字でハイライトされている 2 つのカスタムパターン — カスタム (ステートメント) と カスタム (式) — を編集して、独自の null チェックパターンを作成できます:

デフォルトでは、これら 2 つのパターンは最も優先度が低く、生成には使用されません。 それらを使いたい場合は、優先順位を上げてください。
リストでカスタムパターンを選択すると、 $EXPR$、 $NAME$、 $MESSAGE$ プレースホルダーを使用してページ下部のテキストフィールドで編集できます。 パターンが有効であれば、JetBrains Rider は対応するアイコンをテキストフィールドの下に表示します。
アサーションに使用できる チェックボックスをオンにして、パターンを null の式をアサートする アクションで機能させることもできます。
XML ドキュメント
このタブでは、JetBrains Rider が新しい XML Doc Comments コードを生成する方法や、 既存コードを整形する方法などを制御する各種設定を構成できます。 値を調整し、ページ下部のプレビューペインを確認して、設定がコードにどのように影響するかを確認できます。
ファイルレイアウト
このタブには、 コードをクリーンアップするときに型メンバーを並べ替える方法を定義するパターンが含まれています。 デフォルトのパターンの 1 つを使用することも、独自のパターンを作成することもできます。 詳細については、 ファイルとタイプのレイアウトパターンでメンバーを再配置する を参照してください。
その他
このタブでは、JetBrains Rider が新しいコードを扱い、 既存のコードを整形する方法を制御する追加設定を構成できます。 値を調整し、ページ下部のプレビューペインを確認して、設定がコードにどのように影響するかを確認できます。