Elimina oggetto in C#

Muhammad Maisam Abbas 16 febbraio 2024
Elimina oggetto in C#

Questa esercitazione discuterà i metodi per eliminare un oggetto di una classe definita dall’utente in C#.

Elimina un oggetto di classe definito dall’utente in C# assegnandogli un valore null

Un oggetto classe è una variabile di riferimento che punta alla posizione di memoria di quella classe. Possiamo eliminare l’oggetto assegnandogli il valore null. Significa che l’oggetto attualmente non contiene alcun riferimento a nessuna posizione di memoria. Vedi il seguente esempio.

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

Produzione:

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

Nel codice precedente, abbiamo inizializzato l’oggetto x della classe Sample e assegnato il valore alla proprietà value. Abbiamo quindi eliminato l’oggetto assegnando null a x e stampato la proprietà x.value. Ci dà un’eccezione perché x non punta a nessuna posizione di memoria.

Un altro approccio vantaggioso sarebbe chiamare il garbage collector dopo aver eliminato l’oggetto. Questo approccio è illustrato nell’esempio di codice riportato di seguito.

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

Nel codice precedente, abbiamo chiamato il garbage collector dopo aver assegnato il valore null all’oggetto x con il metodo GC.Collect() in 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

Articolo correlato - Csharp Object