title: Circular reference in same assembly a bad thing?
body: <p>Assume I have the following classes in the same assembly</p>
  
  <pre><code>public class ParentClass : IDisposable
  {
    public ChildClass Child
    {
      get { return _child; }
    }
  }   
  
  public class ChildClass 
  {
     public ParentClass Parent
     {
       get { return _parent; }
       set { _parent= value; }
     }
  
     public ChildClass (ParentClass parent)
     {
       Parent= parent;
     }
  
  }
  </code></pre>
  
  <p>Correct me if I am wrong but this IS bad design. Will this lead to a memory leak or some other unforseen issues later on? Apparently the garbage collector is capable of handling <a href="https://stackoverflow.com/questions/400706/circular-references-cause-memory-leak">such kind of circular references</a>.</p>
  
  <p><strong>Edit</strong></p>
  
  <p>What if the two classes end up getting used like this in some other class?</p>
  
  <pre><code>ParentClass objP = new ParentClass ();
  ChildClass objC =new ChildClass(objP);
  objP.Child = objC;
  </code></pre>
  
  <p>Thoughts please .... </p>