null チェックルーチンを生成する
JetBrains Rider には、値型パラメーター、式、および変数が null かどうかをチェックするコードを生成するための多様な方法が用意されています。 目的に応じて、null チェックルーチンは 2 つのカテゴリに分けられます:
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 の式をアサートする アクションで機能させることもできます。
null 値を持つオブジェクトをスキップするための null チェック
そのようなオブジェクトをスキップすることがあなたのプログラムにとって受け入れ可能な場合、 null 参照であるオブジェクトへのメンバーアクセスを避けるために、別の種類の null チェックが使用されます:
このようなチェックを生成するために、JetBrains Rider は Alt+Enter 上で null チェック式 および 条件付きアクセスを使用する アクションを提供します。 null 許容性分析の設定によって、これらのアクションは クイックフィックスまたは コンテキストアクションとして表示されます。

ただし、JetBrains Rider が式が決して null を返さないと推定した場合、たとえば対応する項目が [NotNull] 属性でマークされている場合や、式がすでに null チェックされている場合などには、これらのアクションは利用できません。