ReSharper 2025.3 ヘルプ

コード検査: if 文を null 伝播コードに置き換える

null のチェックは、たとえば、プロパティを呼び出すときに null 参照例外を防ぐために、おそらく頻繁に行うことです。多数の null チェックに if ステートメントを使用すると、コードが煩雑で長くなります。バージョン 6.0 以降、C# はより短い表記である null 条件演算子をサポートします。これにより、チェーンの呼び出しで 1 つ以上の式の null をチェックできます。これは、null 伝搬と呼ばれます。このような表記は 1 行で記述できますが、多くの if-else ステートメントは通常多くの行を占めます。

以下の例では、メンバーアクセス ?. で null 条件演算子を使用すると、4 行のコードが節約されます。

public string GetName(object name) { if (name != null) { return name.ToString(); } return null; }
public string GetName(object name) { return name?.ToString(); }
2024 年 4 月 08 日

関連ページ:

コードインスペクション設定を構成する

設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...

コード検査: For ループは foreach ループに変換できます

コレクションを変更せずに、または反復変数にアクセスしてコレクションを反復処理する場合は、ループの代わりにを使用することができます。ループの主な利点は、異なるコレクション型で動作するメソッドを作成できることです。ループは、インターフェース(実際には、メソッドを持つ任意の型)を実装するすべての型をサポートします。さらに、を使用すると、多くの LINQ プロバイダがクエリ結果をとして返すため、LINQ クエリ結果を使用した作業が可能になります。ループで反復するメソッドがある場合、ある方法では、あなた...