JetBrains Rider 2026.1 Help

Code inspection: Abstract or virtual (overridable) event is never invoked

This inspection reports overridable events that are never raised. For virtual events, it checks the declaring class and derived classes. For interface events, it checks implementing classes. An event that is only subscribed to, but never invoked, is usually incomplete or dead API.

Example

public delegate void Handler(); class BaseNotifier { public virtual event Handler? Changed; } class DerivedNotifier : BaseNotifier { }
public delegate void Handler(); class BaseNotifier { public virtual event Handler? Changed; protected virtual void OnChanged() { var handler = Changed; if (handler != null) handler(); } } class DerivedNotifier : BaseNotifier { }

Quick-fix

One available fix is to generate an event invoker method. After that, the event can be raised from the class or from derived classes through OnChanged().

01 April 2026