title: Should a property have the same name as its type?
body: <p>I've sometimes seen code written like this :</p>
  
  <pre><code>public class B1
  {
  }
  
  public class B2
  {
      private B1 b1;
  
      public B1 B1
      {
          get { return b1; }
          set { b1 = value; }
      }
  }
  </code></pre>
  
  <p>i.e. class B2 has a property named "B1", which is also of type "B1". </p>
  
  <p>My gut instinct tells me this is not a good idea, but are there any technical reasons why you should avoid giving a property the same name as its class ?</p>
  
  <p>(I'm using .net 2.0, in case that matters).</p>