Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Last active December 25, 2015 23:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fhernd/7058946 to your computer and use it in GitHub Desktop.
Save Fhernd/7058946 to your computer and use it in GitHub Desktop.
Demostración de la implementación del Patrón Desechable por medio de IDisposable en C#.
using System;
using System.Data;
public class ManejadorAperturaDocumentos : IDisposable
{
// recursos manejados
private DataSet datos = new DataSet();
// Variable de instancia para indiciar si se ha invocado al método Dispose.
private bool Desechado;
// Ahora implementamos el método Dipose
public void Dispose()
{
this.Dispose (true);
// Excluse al objeto del ciclo de descubrimiento de basura del garbage collector
GC.SuppressFinalize (this);
}
protected virtual void Dispose (bool marca)
{
if (!this.Desechado)
{
if (marca)
{
// se invoca el método Dipose en los objetos con recursos manejados
this.datos.Dispose ();
}
// aquí podemos implementar la lógica para la liberación de
// los recursos no gestionados
// - sockets de red
// - manipulación de flujo de bytes y texto
// - ventanas del ambiente GUI
}
this.Desechado = true;
}
// declaración del destructor
~ManejadorAperturaDocumentos
{
this.Dispose (false);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment