Supprimer un objet en C#

Muhammad Maisam Abbas 16 février 2024
Supprimer un objet en C#

Ce didacticiel abordera les méthodes pour supprimer un objet d’une classe définie par l’utilisateur en C#.

Supprimer un objet de classe défini par l’utilisateur en C# en lui attribuant une valeur null

Un objet de classe est une variable de référence qui pointe vers l’emplacement mémoire de cette classe. On peut supprimer l’objet en lui affectant la valeur null. Cela signifie que l’objet ne contient actuellement aucune référence à un emplacement mémoire. Consultez l’exemple suivant.

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

Production:

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

Dans le code ci-dessus, nous avons initialisé l’objet x de la classe Sample et attribué une valeur à la propriété value. Nous avons ensuite supprimé l’objet en attribuant null à x et imprimé la propriété x.value. Cela nous donne une exception car x ne pointe vers aucun emplacement mémoire.

Une autre approche avantageuse serait d’appeler le ramasse-miettes après avoir supprimé l’objet. Cette approche est illustrée dans l’exemple de code ci-dessous.

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

Dans le code ci-dessus, nous avons appelé le ramasse-miettes après avoir assigné la valeur null à l’objet x avec la méthode 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

Article connexe - Csharp Object