I've gone through many article which says the purpose of IDisposable is to close the unmanaged objects like DB connections and Third party reports.But my question is why should I define Dispose method if I can handle the unmanaged objects in my methods without defining Dispose() method?
For an example,
class Report : IDisposable
{
    public void GenerateReport()
    {
        Report rpt=new Report() //unmanaged object created
        rpt.Dispose(); // Disposing the unmanaged object
    }
    private void Dispose()
    {
        //not sure why this block is needed
    }
}
Is my understanding correct?
 
     
     
     
     
    