c# GC Dispose Method

I'm having a tough time with working with the Dispose Method when dealing with garbage collection/IDisposable Interface. I've read a few sources now and I get the idea on setting the destructor to call the Dispose Method I implement which can then call an overloaded Method of Dispose to check if it has already been disposed and then to release managed and/or unmanaged resources. In all the example that are written similar to mine below it is just commented out where the work is done to release these resources. I'm wondering if setting this to virtual means the compiler overrides this method and disposes is that way or if I am meant to manually write code to dispose of them?

    class gcTesting : IDisposable
{
    private bool isDisposed = false;



    ~gcTesting()
    {
        this.Dispose(false);
    }

    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

   protected virtual void Dispose(bool disposing)
    {
        if (isDisposed)
        {
            return;
        }

        if (disposing)
        {
            //managed resourses are released here. WHAT GOES HERE?
        }

        //unmanaged resources are released here. WHAT GOES HERE?

        isDisposed = true;
    }
}