title: implicitly convert type of Generic Class to its Specific inheritance
body: <p>I have an abstract data entity <code>MyDataRow</code> which inheritance <code>DataRowA</code> from it.
  There is a generic class which use of it <code>BusinessRow&lt;TData&gt; where TData:MyDataRow</code>. Problem is where I want create a new object of BusinessRow depend of a string variable:<br>
   <code>public BusinessRow&lt;MyDataRow&gt; AddNewRow(string rowType)</code><br>
  and using one of the inheritance class of MyDataRow in its generic type: </p>
  
  <pre><code>public class BusinessRow&lt;TData&gt;
      where TData : MyDataRow
  {
  }
  
  public abstract class MyDataRow
  {
  }
  
  public class DataRowA : MyDataRow
  {
  }
  
  public class Main
  {
      public BusinessRow&lt;MyDataRow&gt; AddNewRow(string rowType)
      {
          BusinessRow&lt;MyDataRow&gt; row = null;
          switch (rowType)
          {
              case "A":
              default:
  
                  row =new BusinessRow&lt;DataRowA&gt;();
  // Error CS0029  Cannot implicitly convert type 
  // 'BusinessRow&lt;DataRowA&gt;' to 'BusinessRow&lt;MyDataRow&gt;' 
  
                  break;
          }
          return row;
      }
  }
  </code></pre>
  
  <p>at the following code </p>
  
  <pre><code>BusinessRow&lt;MyDataRow&gt; row = new BusinessRow&lt;DataRowA&gt;();
  </code></pre>
  
  <p>I get this error</p>
  
  <pre><code>Error CS0029  Cannot implicitly convert type 
   'BusinessRow&lt;DataRowA&gt;' to 'BusinessRow&lt;MyDataRow&gt;'
  </code></pre>