title: cannot convert from 'out T' to 'out Component'
body: <p>here is some C# code that does not compile, giving the following message :</p>
  
  <p><strong><em>cannot convert from 'out T' to 'out Component'</em></strong></p>
  
  <pre><code>    public void Get&lt;T&gt;(out T c) where T : Component
      {
          m_components.TryGetValue(typeof(T), out c);
      }
  </code></pre>
  
  <p>Here is code that does compile :</p>
  
  <pre><code>    public void Get&lt;T&gt;(out T c) where T : Component
      {
          Component temp;
          m_components.TryGetValue(typeof(T), out temp);
          c = (T)temp;
      }
  </code></pre>
  
  <p>I wonder why the first code is not valid since the <strong><em>"where T : Component"</em></strong> explicitly states that T is of type Component. </p>
  
  <p>Thanks</p>