If I am using the using
keyword, do I still have to implement IDisposable
?
You are confusing things. You can only use the "using" keyword on something that implements IDisposable.
Edit: If you use the using keyword, you don't have to explicity invoke Dispose, it will be called automatically at the end of the using block. Others have already posted examples of how the using statement is translated into a try - finally statement, with Dispose invoked within the finally block.