both are used to clear the resources after its use is over

but dispose method is called by .net itself

whereas in some cases we want to customise resource clearing operation in that case we can call  finalize  method