Code inspection: Type member is only used in overrides (non-private accessibility)
This inspection reports a virtual member hierarchy when the member is only used inside overrides through base calls and is never used from outside that hierarchy. That usually means the member chain is unnecessary, unless it is kept intentionally for framework or reflection-based use.
Example
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();
}
}
Quick-fix
If the member is used via reflection or by a framework, annotate it with [UsedImplicitly]. Otherwise, consider if the member hierarchy is necessary.
13 April 2026