All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.plugins.csharp.S4220.html Maven / Gradle / Ivy

There is a newer version: 10.4.0.108396
Show newest version

Why is this an issue?

When raising an event, two arguments are expected by the EventHandler delegate: Sender and event-data. There are three guidelines regarding these parameters:

  • 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.

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);
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy