title: Confused about this assignment "this.Data1.Table.Rows.Add(this.Data1)"
body: <p>Like I said in the title, I'm trying to understand this assignment because I never saw something like this. </p>
  
  <p>The fact is that I have a class which implements some generic types and its defined this way.</p>
  
  <pre><code>public abstract class BaseClass&lt;T, R&gt;
      where T : DataTable, new()
      where R : DataRow
  {
      //some code here...
  
      protected internal R _entityData1;
      public R Data1
      {
          get { return _entityData1; }
          set { _entityData1 = value; }
      }
  
      //some other code here. (not relevant)
  }
  </code></pre>
  
  <p>Then I have an inherited class defined this way, with a method which exposes the assignment that I mentioned in the title of this question:</p>
  
  <pre><code>public class InheritedClass : BaseClass&lt;SomeOtherClass.InheritedFromDataTable, SomeOtherClass.InheritedFromDataRow&gt;
  {
        //some code here...
  
        public void SomeMethod()
        {
             //here I'm confused
             this.Data1.Table.Rows.Add(this.Data1);
        }
  
        //more code..
  }
  </code></pre>
  
  <p>How can you do this without entering in a loop or something??... or this is because there exist a reference to the <code>DataTable</code> object stored outside the <code>Data</code> object? </p>
  
  <p>I think that is important to say that what I've shown as a simplified model of the inheritance... in the project involves many other classes which I didn't expose because it would be unreadable. </p>
  
  <p>Hope you understand my question.</p>