There is no point in providing a default value for a parameter if callers are required to provide a value for it anyway. Thus, ``++[DefaultParameterValue]++`` should always be used in conjunction with ``++[Optional]++``. == Noncompliant Code Example [source,csharp] ---- public void MyMethod([DefaultParameterValue(5)] int j) //Noncompliant, useless { Console.WriteLine(j); } ---- == Compliant Solution [source,csharp] ---- public void MyMethod(int j = 5) { Console.WriteLine(j); } ---- or [source,csharp] ---- public void MyMethod([DefaultParameterValue(5)][Optional] int j) { Console.WriteLine(j); } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::message.adoc[] include::highlighting.adoc[] ''' == Comments And Links (visible only on this page) include::comments-and-links.adoc[] endif::env-github,rspecator-view[]