Eliminar objeto en C#

Muhammad Maisam Abbas 16 febrero 2024
Eliminar objeto en C#

Este tutorial discutirá los métodos para eliminar un objeto de una clase definida por el usuario en C#.

Eliminar un objeto de clase definido por el usuario en C# asignándole un valor null

Un objeto de clase es una variable de referencia que apunta a la ubicación de la memoria de esa clase. Podemos eliminar el objeto asignándole el valor null. Significa que el objeto actualmente no contiene ninguna referencia a ninguna ubicación de memoria. Vea el siguiente ejemplo.

using System;

namespace delete_object {
  public class Sample {
    public string value { get; set; }
  }
  class Program {
    static void Main(string[] args) {
      Sample x = new Sample();
      x.value = "Some Value";
      x = null;
      Console.WriteLine(x.value);
    }
  }
}

Producción :

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.

En el código anterior, inicializamos el objeto x de la clase Sample y asignamos valor a la propiedad value. Luego borramos el objeto asignando null a x e imprimimos la propiedad x.value. Nos da una excepción porque x no apunta a ninguna ubicación de memoria.

Otro enfoque beneficioso sería llamar al recolector de basura después de haber eliminado el objeto. Este enfoque se ilustra en el ejemplo de código a continuación.

using System;

namespace delete_object {
  public class Sample {
    public string value { get; set; }
  }
  class Program {
    static void Main(string[] args) {
      Sample x = new Sample();
      x.value = "Some Value";
      x = null;
      GC.Collect();
      Console.WriteLine(x.value);
    }
  }
}

En el código anterior, llamamos al recolector de basura después de asignar el valor null al objeto x con el método GC.Collect() en C#.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Csharp Object