Using Statements are a great way to avoid memory leaks in C#. This article explains what is happening functionally behind the scenes.