 Disposal in the presence of inheritance and composition of objects that hold resources have analogous problems to destruction/finalization (via destructors or finalizers).Further, since the dispose pattern usually does not have language support for this, boilerplate code is necessary.Firstly, if a derived class overrides a codice_2 method in the base class, the overriding method in the derived class generally needs to call the codice_2 method in the base class, in order to properly release resources held in the base.