コードインスペクション:プライマリコンストラクターパラメーターのキャプチャは禁止されています
非レコード型のプライマリコンストラクターを使用すると、型定義をよりコンパクトにできます。 ただし、その反面、インスタンスメンバーの本体内でプライマリコンストラクターパラメーターが「キャプチャ」されるという潜在的な問題が発生します。 C# のすべてのパラメーター変数は変更可能なため、初期化後にどのインスタンスメンバーからでも値を変更でき、パラメーターを readonly に強制する構文はありません。
このインスペクションは、キャプチャーされたパラメーターを変更するコードが現在存在しない場合でも、インスタンスメンバーによって「キャプチャーされた」すべてのプライマリコンストラクターパラメーターを報告します。 このアプローチは厳しすぎる可能性があるため、このインスペクションは既定で 無効になっています。 これを有効にすると、プライマリコンストラクターパラメーターのキャプチャーを禁止できます。
クイックフィックスは、通常の可変フィールドを導入することで、可変クラスレベルの状態を明示的に表現できます。
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 日