If I am using the using
keyword, do I still have to implement IDisposable
?
You can't have one without the other.
When you write :
using(MyClass myObj = new MyClass())
{
myObj.SomeMthod(...);
}
Compiler will generate something like this :
MyClass myObj = null;
try
{
myObj = new MyClass();
myObj.SomeMthod(...);
}
finally
{
if(myObj != null)
{
((IDisposable)myObj).Dispose();
}
}
So as you can see while having using
keyword it is assumed/required that IDisposable is implemented.