title: C# USING keyword - when and when not to use it?
body: <p>I'd like to know when i should and shouldn't be wrapping things in a USING block.</p>
  
  <p>From what I understand, the compiler translates it into a try/finally, where the finally calls Dispose() on the object.</p>
  
  <p>I always use a USING around database connections and file access, but its more out of habit rather than a 100% understanding. I know you should explicity (or with a using) Dispose() objects which control resources, to ensure they are released instantly rather than whenever the CLR feels like it, but thats where my understanding breaks down.</p>
  
  <p>Are IDisposables not disposed of when they go out of scope?</p>
  
  <p>Do I only need to use a USING when my object makes use of Dispose to tidy itself up?</p>
  
  <p>Thanks</p>
  
  <p>Edit: I know there are a couple of other posts on the USING keyword, but I'm more interested in answers relating the the CLR and exactly whats going on internally</p>
  
  <p>Andrew</p>