2020-12-21 15:38:52 +01:00
When raising an event, two arguments are expected by the `+EventHandler+` delegate: Sender and event-data. There are three guidelines regarding these parameters:
2020-06-30 14:49:38 +02:00
2020-12-21 15:38:52 +01:00
* Do not pass `+null+` as the sender when raising a non-static event.
* Do pass `+null+` as the sender when raising a static event.
* Do not pass `+null+` as the event-data. If no data should be passed, then `+EventArgs.Empty+` should be used.
2020-06-30 12:49:37 +02:00
This rule raises an issue when any of these guidelines is not met.
== Noncompliant Code Example
----
using System;
namespace MyLibrary
{
class Foo
{
public event EventHandler ThresholdReached;
protected virtual void OnThresholdReached(EventArgs e)
{
ThresholdReached?.Invoke(null, e); // Noncompliant
}
}
}
----
== Compliant Solution
----
using System;
namespace MyLibrary
{
class Foo
{
public event EventHandler ThresholdReached;
protected virtual void OnThresholdReached(EventArgs e)
{
ThresholdReached?.Invoke(this, e);
}
}
}
----