ReSharper 2025.3 Help

代码检查:字段可以设为只读(非私有访问权限)

假设您决定创建一个 Person 类,仅通过构造函数初始化,但具有公开可用的字段。 接下来,您实现了以下内容:

public class Person { public string Name; public int Age; public Person(string name, int age) { Name = name; Age = age; } public override string ToString() => $"Name: {Name}, Age: {Age}"; }
Public Class Person Public Name As String Public Age As Integer Public Sub New(name As String, age As Integer) Me.Name = name Me.Age = age End Sub Public Overrides Function ToString() As String Return String.Format("Name: {0}, Age: {1}", Name, Age) End Function End Class

如果启用了解决方案范围检查,ReSharper 可以检测到这些字段仅在构造函数中被赋值,并建议创建一个额外的保护措施:通过将它们标记为 readonly ,我们可以确保此类及其用户不会无意中为这些字段分配新值。

要使解决方案范围的检查生效,您需要启用以下至少一项:

  • 简化的全局使用检查:在 ReSharper 选项 Alt+R, O 代码检查 | 设置 页面上选择 当解决方案范围分析关闭时,显示未使用的非 private 类型成员

  • 解决方案范围分析 :在 ReSharper 选项 的 代码检查 | 设置 页面上选择 启用解决方案级分析(_A) Alt+R, O

请注意,即使报告的字段在您的解决方案中没有直接使用,也可能存在间接使用的情况——例如,通过反射——或者它可能只是设计为公共 API。 在所有这些情况下,您可能希望通过以下方式之一 抑制字段的使用检查:

  • 推荐的方法是为隐式使用的字段添加一个 代码注解属性。 为此有两个属性: [UsedImplicitly][PublicAPI] ,它们在功能上相似,但可以让您和您的团队了解字段的实际使用方式。

  • 您还可以使用任何自定义属性来抑制用法检查。 为此,请用 [MeansImplicitUse]属性标记该属性的定义。

  • 最后,您可以像处理其他代码检查一样,通过 抑制注释或抑制属性来抑制特定的使用检查。

最后修改日期: 2025年 12月 8日