title: Cannot implicitly convert type to type parameter - C# generics
body: <p>I have declared a method with input and output type parameters. I have put some constrainsts on these types. See code below.</p>
  
  <pre><code>class Input { public int I { get; set; } }
      class InputType1 : Input { }
      class InputType2 : Input { }
  
      class Output { public int O { get; set; } }
      class OutputType1 : Output { }
  
      static TOutput Method&lt;TInput, TOutput&gt;(TInput input) 
          where TInput : Input 
          where TOutput : Output
      {
          var output = new Output() { O = input.I * 2 };
          return output; //  compile error: connot do conversion implicitly
      }
  </code></pre>
  
  <p>Why does the conversion can be done implicitly on the variable 'input' and not on the variable 'output'?</p>