Ich habe eine Variable oder ein Array, das ich nicht mehr brauchte. Wie man sie zerstört? Entschuldigung für die Noob-Frage.Zerstörung einer Variablen oder eines Arrays in C#
Antwort
in .NET die Garbage Collector wird es für Sie tun! Aber es kann tatsächlich davon abhängen, was Sie meinen, wenn Sie schreiben, dass Sie Ihre Variable nicht mehr brauchen
Sie nicht. Lassen Sie die Referenz den Gültigkeitsbereich verlassen und wird automatisch garbage-collected.
.NET verfügt über einen integrierten Speicherbereiniger. Es reicht aus, auf das Array oder die Variable zu verweisen, wenn Sie sie nicht benötigen. Ein expliziter Aufruf zum Zerstören ist nicht erforderlich.
In .Net oder jede Müll gesammelt Sprache für diese Angelegenheit lösen Sie einfach alle Verweise Sie auf das Objekt halten, und der Garbage Collector wird es Ex schließlich sammeln:
int[] arr = new int[20];
....
// when no longer needed set all references to null
arr = null;
// also creating a new object will release the old one automatically if there are no more references to it
arr = new int[40]; // old array will be garbage collected
Beachten Sie auch, dass Sie dies nicht tun Sie müssen dies jedes Mal tun, wenn Sie ein Objekt explizit freigeben möchten, ohne das übergeordnete Objekt des Objekts freizugeben, oder wenn es sich bei dem Verweis um ein statisches Feld handelt. Auch das Freigeben von Objekten ist nicht für lokale (Methoden-) Variablenfelder von Klassen oder statischen Feldern erforderlich.
Garbage-Collector ist fantastisch, aber das Objekt wird effektiv zerstört, wenn der Garbage-Collector die nicht mehr referenzierten Objekte sammelt: später ... Also wenn das Objekt sofort entsorgt werden muss, damit der Destruct-Code aufgerufen wird Sie implementieren die IDisposable-Schnittstelle und rufen die Dispose-Methode auf, bevor Sie Ihr Objekt dereferenzieren.
- 1. C++ lokale Variable Zerstörung Reihenfolge
- 2. Zurückgeben eines Vektors oder Arrays von einer Funktion in C++
- 3. definieren die Länge eines Arrays mit einer Variablen in C++/C
- 4. Erstellen eines Arrays von Strings in einer SESSION-Variablen (php)
- 5. Drucken eines Arrays in C
- 6. C# Werte des Arrays einzelnen Variablen in einer Zeile zuweisen
- 7. Serialisierung eines Arrays in C#
- 8. Index eines Arrays in Liste des Arrays in C# findet
- 9. Verwenden eines Arrays für GET-Variablen
- 10. Dynamische Änderung oder Zerstörung einer Texture2D für Zeichnung und Kollisionserkennung
- 11. Verwenden eines Arrays mit Zeigern in C
- 12. Erstellen eines zweidimensionalen Arrays in Objective-C
- 13. Löschen eines Char-Arrays c
- 14. Wie setze oder initialisiere ich den Standardwert für alle Elemente einer Tabelle oder eines 2D-Arrays oder eines multidimensionalen Arrays?
- 15. Erweiterung eines Arrays innerhalb einer Struktur in C
- 16. C - Initialisierung eines globalen Arrays in einer Funktion
- 17. Auffüllen oder Verschieben eines mehrdimensionalen Arrays
- 18. Initialisierung eines leeren Arrays in C++
- 19. C++/OpenGL - Zeiger eines Arrays
- 20. Mehrdimensionale Arrays in einer Struktur in C#
- 21. Printing Elemente eines Arrays in C
- 22. Wie verschmelzen zwei Arrays innerhalb einer Variablen?
- 23. NSMutableArray Zerstörung
- 24. Abrufen eines IntPtr zu einer ulong-Variablen in C#
- 25. Speichern eines Arrays in einer MySQL-Datenbank
- 26. Erstellen eines Arrays von zweidimensionalen Arrays in C#
- 27. Verwenden eines Arrays in einer anderen Methode
- 28. Ich möchte Elemente eines Arrays als Variablen verwenden, aber wie?
- 29. modifizierende Länge eines Arrays in C++
- 30. Ändern eines Arrays von Zeichenfolgen in C
vielen Dank! – Alexry
Beachten Sie, dass Sie die Referenz auch nicht auf "null" setzen müssen - die JIT/Runtime wird herausfinden, an welcher Stelle der Code diese Referenz nicht mehr verwenden wird; es ist tot und sammelbar an diesem Punkt. Google für 'GC.KeepAlive()' Beschreibungen in MSDN Blogs und hier auf SO für Details. –
@Alexry, Ihre Begrüßung, auch wie @Michael Burr sagte, es ist * äußerst selten * in .Net, eine Variable manuell auf Null zu setzen, müssen Sie normalerweise nicht tun. –