← back to index

S3906 — Event Handlers should have the correct signature

Language: C#  |  Type: CODE_SMELL  |  Severity: Major

Tags: convention

Why is this an issue?

Delegate event handlers (i.e. delegates used as type of an event) should have a very specific signature:

This rule raises an issue whenever a delegate declaration doesn’t match that signature.

Noncompliant code example

public delegate void AlarmEventHandler(object s);

public class Foo
{
    public event AlarmEventHandler AlarmEvent; // Noncompliant
}

Compliant solution

public delegate void AlarmEventHandler(object sender, AlarmEventArgs e);

public class Foo
{
    public event AlarmEventHandler AlarmEvent; // Compliant
}

Resources

Handling and Raising Events