== Why is this an issue?

Obsoleted method should be avoided, rather than overridden. Obsolescence is a warning that the method has been superseded, and will eventually be removed. The obsolescence period allows you to make a smooth transition away from the aging, soon-to-be-retired technology.

=== Noncompliant code example

[source,csharp]
----
public class Car
{

  [Obsolete("Replaced by the automatic starter")]
  public void CrankEngine(int turnsOfCrank) 
  { ... }
}

public class R2 : Car
{

  public void CrankEngine(int turnsOfCrank)   // Noncompliant
  { ... }

  ...
}
----

=== Compliant solution

[source,csharp]
----
public class Car
{

  [Obsolete("Replaced by the automatic starter")]
  public void CrankEngine(int turnsOfCrank) 
  { ... }
}

public class R2 : Car
{

  ...
}
----

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

"xxx" is "Obsolete".


'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]

endif::env-github,rspecator-view[]
