代码检查:不允许捕获主构造函数参数
非记录类型的主构造函数使您的类型定义更加简洁。 然而,缺点是,它们引入了一个潜在问题,即在实例成员主体中“捕获”主构造函数参数。 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日