コード検査: プライマリコンストラクターパラメーターのキャプチャーは許可されていません
非レコード型のプライマリコンストラクターを使用すると、型定義がよりコンパクトになります。ただし、欠点として、プライマリコンストラクターパラメーターをインスタンスメンバー本体内に「キャプチャー」するという潜在的な問題が生じます。C# のすべてのパラメーター変数は変更可能です。つまり、どのインスタンスメンバーも初期化後に値を変更でき、パラメーターを読み取り専用に強制する構文はありません。
このインスペクションは、キャプチャーされたパラメーターを変更するコードが現在存在しない場合でも、インスタンスメンバーによって「キャプチャーされた」すべてのプライマリコンストラクターパラメーターを報告します。このアプローチは厳しすぎる可能性があるため、このインスペクションは既定で無効になっています。これを有効にすると、プライマリコンストラクターパラメーターのキャプチャーを禁止できます。
クイックフィックスは、通常の可変フィールドを導入することで、可変クラスレベルの状態を明示的に表現できます。
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...
コード検査: 文字列の比較が間違っている可能性があります: スパンは、同じメモリ位置を指している場合にのみ等しくなります。| ReSharper ドキュメント
このインスペクションは、演算子を使用してスパンを文字列と比較する場合に潜在的な問題があることを報告します。この演算子は、コンテンツの等価性ではなく参照の等価性をチェックします。このような比較では、スパンと文字列が同じメモリ位置を指しているかどうかがチェックされますが、これは通常望ましいことではありません。スパンと文字列の内容を比較するには、演算子を使用できます。bool IsHello(ReadOnlySpan<char> span) { return span ==