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

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

There is a newer version: 10.2.0.105762
Show newest version

Why is this an issue?

Overriding a method just to call the same method from the base class without performing any other actions is useless and misleading. The only time this is justified is in sealed overriding methods, where the effect is to lock in the parent class behavior. This rule ignores overrides of Equals and GetHashCode.

NOTE: In some cases it might be dangerous to add or remove empty overrides, as they might be breaking changes.

Noncompliant code example

public override void Method() // Noncompliant
{
  base.Method();
}

Compliant solution

public override void Method()
{
  //do something else
}

Exceptions

If there is an attribute in any level of the overriding chain, then the overridden member is ignored.

public class Base
{
  [Required]
  public virtual string Name { get; set; }
}

public class Derived : Base
{
  public override string Name
  {
    get
    {
      return base.Name;
    }
    set
    {
      base.Name = value;
    }
  }
}

If there is a documentation comment on the overriding method, it will be ignored:

public class Foo : Bar
{
    /// <summary>
    /// Keep this method for backwards compatibility.
    /// </summary>
    public override void DoSomething()
    {
        base.DoSomething();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy