title: C# - Garbage Collection
body: <p>Ok so I understand about the stack and the heap (values live on the Stack, references on the Heap).</p>
  
  <p>When I declare a new instance of a Class, this lives on the heap, with a reference to this point in memory on the stack. I also know that C# does it's own Garbage Collection (ie. It determines when an instanciated class is no longer in use and reclaims the memory).</p>
  
  <p>I have 2 questions:</p>
  
  <ol>
  <li>Is my understanding of Garbage Collection correct?</li>
  <li>Can I do my own? If so is there any real benefit to doing this myself or should I just leave it.</li>
  </ol>
  
  <p>I ask because I have a method in a For loop. Every time I go through a loop, I create a new instance of my Class. In my head I visualise all of these classes lying around in a heap, not doing anything but taking up memory and I want to get rid of them as quickly as I can to keep things neat and tidy!</p>
  
  <p>Am I understanding this correctly or am I missing something?</p>