ReSharper 2025.2 Help

代码检查:自动属性可以设为仅 get(私有访问权限)

从 C# 6.0 开始,您可以定义仅 get 的自动属性,这些属性(类似于 只读字段 )只能通过构造函数或初始化器进行初始化。 ReSharper 会检测并帮助您移除在构造函数/初始化器中初始化且没有写入使用的自动属性上的冗余 设置 访问器。

在下面的示例中,意图是创建一个不可变类,并且一旦在构造函数中检查了 名称 属性的可空性,就可以安全地使用它,而无需进一步的空检查。 然而,私有 setter 并不能保证该属性不会在私有成员中被更改。 因此,最好将此属性设为仅 get,以防止任何修改。

public class Person { public string Name { get; private set; } // Auto-property can be made get-only public Person(string name) { Name = name ?? throw new ArgumentNullException(nameof(name)); } public override string ToString() { return $"NAME: {Name.ToUpper()}"; } }

如果启用了 解决方案范围分析 ,ReSharper 甚至会分析您的自动属性的公共 setter 的使用情况,并建议将其设为仅 get,如果在您的解决方案中未找到此类使用情况。

最后修改日期: 2025年 9月 27日