Objekt löschen in C#

Muhammad Maisam Abbas 16 Februar 2024
Objekt löschen in C#

In diesem Lernprogramm werden die Methoden zum Löschen eines Objekts einer benutzerdefinierten Klasse in C# erläutert.

Löschen eines Objekts einer benutzerdefinierten Klasse in C# durch Zuweisen des Werts null

Ein Klassenobjekt ist eine Referenzvariable, die auf den Speicherort dieser Klasse verweist. Wir können das Objekt löschen, indem wir ihm den Wert null zuweisen. Dies bedeutet, dass das Objekt derzeit keinen Verweis auf einen Speicherort enthält. Siehe folgendes Beispiel.

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

Ausgabe:

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

Im obigen Code haben wir das Objekt x der Klasse Sample initialisiert und der Eigenschaft value einen Wert zugewiesen. Wir haben dann das Objekt gelöscht, indem wir x null zugewiesen und die Eigenschaft x.value gedruckt haben. Dies gibt uns eine Ausnahme, da x nicht auf einen Speicherort verweist.

Ein weiterer nützlicher Ansatz wäre, den Garbage Collector aufzurufen, nachdem wir das Objekt gelöscht haben. Dieser Ansatz wird im folgenden Codebeispiel veranschaulicht.

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

Im obigen Code haben wir den Garbage Collector aufgerufen, nachdem wir dem Objekt x mit der Methode GC.Collect() in C# den Wert null zugewiesen haben.

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

Verwandter Artikel - Csharp Object