The `+Obsolete+` attribute can be applied with or without arguments, but marking something `+Obsolete+` without including advice as to why it's obsolete or on what to use instead will lead maintainers to waste time trying to figure those things out - every single time the warning is encountered. == 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) { ... } } ----