Excluir objeto em C#

Muhammad Maisam Abbas 16 fevereiro 2024
Excluir objeto em C#

Este tutorial discutirá os métodos para excluir um objeto de uma classe definida pelo usuário em C#.

Exclua um objeto de classe definida pelo usuário em C# atribuindo valor null a ele

Um objeto de classe é uma variável de referência que aponta para a localização da memória dessa classe. Podemos excluir o objeto atribuindo o valor null a ele. Isso significa que o objeto atualmente não contém nenhuma referência a qualquer local da memória. Veja o seguinte exemplo.

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);
    }
  }
}

Resultado:

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

No código acima, inicializamos o objeto x da classe Sample e atribuímos um valor à propriedade value. Em seguida, excluímos o objeto atribuindo null a x e imprimimos a propriedade x.value. Isso nos dá uma exceção porque x não aponta para nenhum local da memória.

Outra abordagem benéfica seria chamar o coletor de lixo depois de excluir o objeto. Essa abordagem é ilustrada no exemplo de código abaixo.

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);
    }
  }
}

No código acima, chamamos o coletor de lixo após atribuir o valor null ao objeto x com o método GC.Collect() em 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

Artigo relacionado - Csharp Object