The use of ``++[DefaultValue]++`` with ``++[Optional]++`` has no more effect than ``++[Optional]++`` alone. That's because ``++[DefaultValue]++`` doesn't actually do anything; it merely indicates the intent for the value. More than likely, ``++[DefaultValue]++`` was used in confusion instead of ``++[DefaultParameterValue]++``. == Noncompliant Code Example ---- class MyClass { public void DoStuff([Optional][DefaultValue(4)]int i, int j = 5) // Noncompliant { Console.WriteLine(i); } public static void Main() { new MyClass().DoStuff(); // prints 0 } } ---- == Compliant Solution ---- class MyClass { public void DoStuff([Optional][DefaultParameterValue(4)]int i, int j = 5) { Console.WriteLine(i); } public static void Main() { new MyClass().DoStuff(); // prints 4 } } ---- 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[]