JetBrains Rider 2025.2 Help

代码检查:类型成员从未通过基类型访问(非私有可访问性)

此检查报告在解决方案中没有直接使用的接口成员,仅使用其派生类的实现。 它建议此类成员可能不需要成为接口的一部分,在这种情况下,可以安全地将其移除以简化代码。

尽管这可能是您当前代码库状态中的一个问题,但检查无法考虑接口未来计划的使用情况。 因此,如果您计划通过接口使用报告的成员,可以忽略此建议。

在下面的示例中, 名称 属性从未通过 IPage 接口使用;仅使用了其在 Post 类中的实现。 从 IPage 中移除 名称 将使您的代码更简洁,表明 名称Post 类的一部分。

public interface IPage { public string Name { get; set; } } public class Post : IPage { public string Name { get; set; } public Post(string name) => Name = name; public void PrintName() => Console.WriteLine(Name); } public class Test { public Test() { var post = new Post("New post"); post.PrintName(); } }

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

  • 简化的全局使用检查:在 JetBrains Rider 设置 的 编辑器 | 检查设置 页面上选择 在关闭全局范围分析时显示未使用的非私有类型成员 Ctrl+Alt+S

  • 解决方案范围分析 :在 JetBrains Rider 设置 的 编辑器 | 检查设置 页面上选择 启用解决方案级分析(_A) Ctrl+Alt+S

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

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

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

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

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