代码检查:类型成员仅在重写中使用(私有可访问性)。
当成员仅通过 base 调用在重写内部被使用,且从未在该层次结构外部被使用时,此检查会报告虚拟成员层次结构。 这通常意味着成员链是多余的,除非是为了框架或基于反射的用途而有意保留。
示例
abstract class Base
{
public virtual void Foo()
{
}
}
class Derived : Base
{
public override void Foo()
{
base.Foo();
}
}
using JetBrains.Annotations;
abstract class Base
{
[UsedImplicitly]
public virtual void Foo()
{
}
}
class Derived : Base
{
public override void Foo()
{
base.Foo();
}
}
快速修复
如果成员通过反射或由框架使用,请用 [UsedImplicitly] 进行标注。 否则,请考虑成员层次结构是否有必要。
2026年 5月 8日