title: C# optional parameters on overridden methods
body: <p>Seems like in .NET Framework there is an issue with optional parameters when you override the method. The output of the code below is:
  "bbb"
  "aaa"
  . But the output I'm expecting is:
  "bbb"
  "bbb"
  .Is there a solution for this. I know it can be solved with method overloading but wondering the reason for this. Also the code works fine in Mono.</p>
  
  <pre><code>class Program
  {
      class AAA
      {
          public virtual void MyMethod(string s = "aaa")
          {
              Console.WriteLine(s);
          }
  
          public virtual void MyMethod2()
          {
              MyMethod();
          }
      }
  
      class BBB : AAA
      {
          public override void MyMethod(string s = "bbb")
          {
              base.MyMethod(s);
          }
  
          public override void MyMethod2()
          {
              MyMethod();
          }
      }
  
      static void Main(string[] args)
      {
          BBB asd = new BBB();
          asd.MyMethod();
          asd.MyMethod2();
      }
  }
  </code></pre>