title: overloading constructors and reusing code
body: <p>Let's say I've got an object <code>Customer</code> with a couple properties (<code>ID</code>, <code>FirstName</code>, <code>LastName</code>).  I've got the default constructor <code>Customer()</code>, but then I've also got a <code>Customer(DataRow dr)</code>, since I load this object from a database and that's a simple way to do it.</p>
  
  <p>I frequently come to a point where I want to set up another constructor, <code>Customer(int ID)</code>, for times when I want to load a <code>Customer</code> but I haven't made the trip to the database yet.  The simplest way to me seems to be like so:</p>
  
  <pre><code>Customer(int ID)
  {
      DataTable dt = DataAccess.GetCustomer(ID);
      if (dt.Rows.Count &gt; 0)
      {
          // pass control to the DataRow constructor at this point?
      }
      else
      {
          // pass control to the default constructor at this point?
      }   
  }
  </code></pre>
  
  <p>It makes sense to reuse the code that's already in the DataRow constructor, but I can't figure out a way to call that and return what it gives me.  Through Googling, I've found information about constructor overloading with the <code>: this()</code> syntax, but all those examples seem backwards or incompatible with what I'm trying to do.  </p>
  
  <p>So there's a gap in my understanding of constructors, but I can't seem to sort it out.  What am I missing?</p>