ReSharper 2025.2 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; }
最后修改日期: 2025年 9月 27日