Sorry for the vague title, but I'm not sure what this is called.

Say I add `IDisposable` to my class, Visual Studio can create the method stub for me. But it creates the stub like:

`void IDisposable.Dispose()`

I don't follow what this syntax is doing. Why do it like this instead of `public void Dispose()`?

And with the first syntax, I couldn't work out how to call Dispose() from within my class (in my destructor).