== Why is this an issue? Delegate event handlers (i.e. delegates used as type of an event) should have a very specific signature: * Return type ``++void++``. * First argument of type ``++System.Object++`` and named 'sender'. * Second argument of type ``++System.EventArgs++`` (or any derived type) and is named 'e'. This rule raises an issue whenever a ``++delegate++`` declaration doesn't match that signature. === Noncompliant code example [source,text] ---- public delegate void AlarmEventHandler(object s); public class Foo { public event AlarmEventHandler AlarmEvent; // Noncompliant } ---- === Compliant solution [source,text] ---- public delegate void AlarmEventHandler(object sender, AlarmEventArgs e); public class Foo { public event AlarmEventHandler AlarmEvent; // Compliant } ---- == Resources https://msdn.microsoft.com/en-us/library/edzehd2t.aspx[Handling and Raising Events]