JetBrains Rider 2026.1 Help

コードインスペクション:プライマリコンストラクターパラメーターのキャプチャは禁止されています

非レコード型のプライマリコンストラクターを使うことで、型定義をよりコンパクトにできます。 しかし、その一方で、インスタンスメンバーの本体内でプライマリコンストラクターパラメーターを「キャプチャ」するという潜在的な問題が生じます。 C# のすべてのパラメーター変数はミュータブルであるため、初期化後にどのインスタンスメンバーでも値を変更することができ、パラメーターを読み取り専用にする構文はありません。

このインスペクションは、キャプチャーされたパラメーターを変更するコードが現在存在しない場合でも、インスタンスメンバーによって「キャプチャーされた」すべてのプライマリコンストラクターパラメーターを報告します。 このアプローチは厳しすぎる可能性があるため、このインスペクションは既定で 無効になっています。 これを有効にすると、プライマリコンストラクターパラメーターのキャプチャーを禁止できます。

クイックフィックスは、通常の可変フィールドを導入することで、可変クラスレベルの状態を明示的に表現できます。

public class Sample(int parameter) { public int PropertyCapture => parameter; }
public class Sample(int parameter) { private readonly int _parameter = parameter; public int PropertyCapture => _parameter; }
2026 年 6 月 12 日