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 [source,csharp] ---- public override void Method() // Noncompliant { base.Method(); } ---- == Compliant Solution [source,csharp] ---- 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 { /// /// Keep this method for backwards compatibility. /// public override void DoSomething() { base.DoSomething(); } } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::message.adoc[] ''' == Comments And Links (visible only on this page) include::comments-and-links.adoc[] endif::env-github,rspecator-view[]