title: Calling Dispose() vs when an object goes out scope/method finishes
body: <p>I have a method, which has a <code>try/catch/finaly</code> block inside. Within the try block, I declare <code>SqlDataReader</code> as follows:</p>
  
  <pre><code>SqlDataReader aReader = null;          
  aReader = aCommand.ExecuteReader();
  </code></pre>
  
  <p>In the <code>finally</code> block, the objects which are manually disposed of are those which are set at the class level. So objects in the method which implement <code>IDisposable</code>, such as <code>SqlDataReader</code> above, do they get automatically disposed of? <code>Close()</code> is called on <code>aReader</code> after a while loop executes to get the contents of the reader (which should be <code>Dispose()</code> as that calls <code>Close()</code>). If there is no call to <code>Close()</code>, would this object be closed/disposed of automatically when the method finishes or the object goes out of scope?</p>
  
  <p>EDIT: I am aware of the <code>using</code> statement but there are scenarios which are confusing me.</p>