title: Adding option parameter to a library in c# without creating a breaking change
body: <p>I have a nuget package, in it I have a method which has optional args (v1.0)</p>
  
  <pre><code>public void MyMethod(int a = 0){}
  </code></pre>
  
  <p>I later created a new version of my package with another optional arg (thinking it wasnt a breaking change) (v1.1)</p>
  
  <pre><code>public void MyMethod(int a = 0, int b = 1){}
  </code></pre>
  
  <p>This package is consumed by another nuget package which references v1.0 I have both v1.1 and the other nuget package included in my project. This means that at a binding level Im using v1.1 and the package using v1.0 is redirecting to the 1.1 dll.</p>
  
  <p>This causes a missing method exception because of the following:
  <a href="https://stackoverflow.com/a/9884700/1070291">https://stackoverflow.com/a/9884700/1070291</a></p>
  
  <p>I want to fix my library so that either signature will function, my first thought was this:</p>
  
  <pre><code>public void MyMethod(int a = 0, int b = 1){}
  public void MyMethod(int a = 0){ MyMethod(a,1); }
  </code></pre>
  
  <p>However this causes an ambiguous method when its used elsewhere.</p>
  
  <p>I'm wondering if there is some way to fill in the old method for backward compatibility without creating something ambiguous going forward. </p>
  
  <p>I almost want to mark the old signature with something to instruct the compiler to include this in the assembly but not link any new methods to it.</p>