title: Why adding a return type to a void returning method causes a MissingMethodException
body: <p>I have a .NET application that uses an assembly (.dll) that defines some method:</p>
  
  <pre><code>    public void DoSomething()
      {
          // Do work
      }
  </code></pre>
  
  <p>Suppose this method signature changes to include a <em>string</em> return type:</p>
  
  <pre><code>    public string DoSomething()
      {
          // Do work
          return "something";
      }
  </code></pre>
  
  <p>Why does the code that uses this method fails on a <em>System.MissingMethodException</em> ?</p>
  
  <p>It seems to me, that at all call sites to this method, no use was made of the return value (since it did not exist before). </p>
  
  <p>Why does this change break the code then?</p>