/// <summary>
 /// Función que retorna un String con el nombre de los elementos del
 /// ISet que se pasa como parámetro, uno por cada línea, y añadiendo
 /// la tabulación establecida.
 /// </summary>
 /// <param name="componentes"></param>
 /// <param name="f"></param>
 /// <returns></returns>
 public String formatoSet(ISet<Componente> componentes, Formato f)
 {
     String resultado = "";
     anidamiento++;
     foreach (Componente c in componentes)
     {
         resultado += "\n";
         resultado = creaTab(resultado);
         resultado += c.aceptar(f);
     }
     anidamiento--;
     return resultado;
 }
 /// <summary>
 /// Método abstracto que implementa la operación operación 
 /// “Accept” que toma un visitante como argumento
 /// </summary>
 /// <param name="f"></param>
 /// <returns></returns>
 public override abstract String aceptar(Formato f);
 /// <summary>
 /// Método abstracto que implementa la operación de visita
 /// para cada elemento concreto en la estructura de objetos
 /// dependiendo del formato que pasemos como parámetro.
 /// </summary>
 /// <param name="f"></param>
 /// <returns></returns>
 public override String aceptar(Formato f)
 {
     return f.formatoDirectorio(this);
 }
 /// <summary>
 /// Método abstracto que implementa la operación operación 
 /// “Accept” que toma un visitante como argumento
 /// </summary>
 /// <param name="f"></param>
 /// <returns></returns>
 public override String aceptar(Formato f)
 {
     return f.formatoArchivoComprimido(this);
 }
 /// <summary>
 /// Método abstracto que implementa la operación operación 
 /// “Accept” que toma un visitante como argumento
 /// </summary>
 /// <param name="f"></param>
 /// <returns></returns>
 public abstract String aceptar(Formato f);