S1123 — "Obsolete" attributes should include explanations

Language
C#
Type
Code smell
Severity
Major
Tags
obsolete, bad-practice

Why is this an issue?

The Obsolete attribute can be applied with or without a message argument. Marking something Obsolete without including advice on why it’s obsolete or what to use instead will lead maintainers to waste time trying to figure those things out.

Noncompliant code example


public class Car
{

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

Compliant solution


public class Car
{

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

↑ Back to top