代码检查:类型成员仅在重写中使用(非私有可访问性)
当成员仅通过 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日