InicioHazlo Tu MismoApéndice de Programando en C# (borrador de clases)

Apéndice de Programando en C# (borrador de clases)

Hazlo Tu Mismo10/19/2011

En este nuevo apéndice voy a dar como se borran las clases, un punto que me he olvidado absolutamente de explayar como corresponde.
Los objetos creados en un programa contienen todos los datos y las funciones que les creamos para que traten a esos datos de determinada manera.
Cuando manejamos muchos objetos encontramos que a veces es bueno deshacernos de ellos.
Como los objetos trabajan con referencia en memoria, o sea, existen en la memoria de una manera referenciada; por de otro modo, dependen de una variable para poder ser encontrados, y dependiendo el modo de ser manejados o el lenguaje con el que trabajemos, un objeto puede depender de más de una variable.
¿Que pasa si determinamos que esa variable es igual a nulo? ¿Los datos guardados del objeto seguirán existiendo?
La respuesta es si, seguirán existiendo, hasta que pase algo llamado "Colector" o "porta papeles" y vacía la memoria a todos aquellos objetos que hayan dejado de tener alguna referencia.
Lo que nosotros podemos hacer es quitar referencias, pero no sabemos cuando pasará el porta papeles para que se lleve la basura de nuestra memoria, así nos la deja libre para otras cosas.
Si bien para programas chicos esto no ocupa espacio para nada, si se quiere borrar algo simplemente se le pone null a aquella cosa que querramos, el espacio en memoria es ínfimo, en un programa que se necesite mucha memoria disponible es necesario que pase de vez en cuando el colector.
Y esto funciona de una manera bien fácil:
La clase de prueba...


<?
using System
;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class ClasePrueba
    
{
        private string nombre;
        private string apellido;

        public ClasePrueba(string nombre,string apellido)
        {
            this.nombre = nombre;
            this.apellido = apellido;
        }

        public string SGnombre
        
{
            set
            
{
                nombre = value;
            }
            get
            
{
                return nombre;
            }
        }

        public string SGapellido 
        
{
            set
            
{
                apellido = value;
            }
            get
            
{
                return apellido;
            }
        }
    }
}
>


La clase Program donde está el main...



<?
using System
;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    
{
        static void Main(string[] args)
        {
            Console.Write("Introduzca nombre");
            string nombre = Console.ReadLine();

            Console.Write("Introduzca apellido");
            string apellido = Console.ReadLine();

            ClasePrueba cl = new ClasePrueba(nombre,apellido);
            Console.WriteLine(cl.SGnombre + " " + cl.SGapellido);

            cl = null; //Acá se saca la referencia de la variable cl al objeto que contiene nombre y apellido.
            
            
            GC
.Collect(); //Acá se hace pasar el colector.
            GC.WaitForPendingFinalizers(); //Esto, supuestamente hace que el programa espere hasta que finalice de borrar todo aquello que está en la cola. 
            //En otras palabras, inicia un subproceso de borrado de memoria y suspende el proceso principal hasta que la cola esté vacía.

            Console.WriteLine("Clase de prueba borrada");
            Console.ReadKey();
        }
    }
}
>



Post anteriores, para que aprendan y acoplen esto a todo lo anterior:


Datos archivados del Taringa! original
34puntos
685visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

L
Lelale🇦🇷
Usuario
Puntos0
Posts52
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.