Tengo una variable o matriz, que ya no necesito. ¿Cómo destruirlos? Lo siento por noob-pregunta.destrucción de una variable o matriz en C#
Respuesta
en .NET el Garbage Collector lo hará por usted! Pero en realidad puede depender de lo que quiere decir cuando escribe que ya no "necesita" su variable
No es así. Simplemente deje que la referencia salga del alcance y será automáticamente garbage-collected.
.NET tiene un recolector de basura incorporado. Es suficiente dejar de hacer referencia a la matriz o variable cuando no la necesite. No hay necesidad de una llamada de destrucción explícita.
En Ex .Net o cualquier lenguaje de basura recogida para el caso se debe soltar todas las referencias se mantienen fieles a ese objeto, y el recolector de basura finalmente lo recogerá:
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
También tenga en cuenta que no lo hace Necesita hacer esto cada vez, solo cuando explícitamente quiera liberar un objeto sin soltar su objeto principal o si la referencia es un campo estático. Además, no es necesario liberar objetos para variables locales (método) solo campos de clases o campos estáticos.
Garbage-Collector es increíble, pero el objeto se destruye efectivamente cuando el Garbage-Collector recoge los objetos que ya no se referencian: más adelante ... Si necesita que el objeto se elimine immediateli para que se llame el código de destrucción , deberás implementar la interfaz IDisposable y llamar al método Dispose antes de desreferenciar tu objeto.
- 1. ¿Cómo puedo pasar una matriz de const o una matriz variable a una función en C?
- 2. NSMutableArray destrucción
- 3. ¿Cómo declarar una matriz 2D de tamaño variable en C?
- 4. Orden de destrucción para la matriz de objetos
- 5. inicializar una matriz C multidimensional de tamaño variable a cero
- 6. punteros de matriz C++ [] o ++
- 7. destrucción irrecuperable de datos en Java
- 8. ¿Sobrecarga de la matriz de longitud variable en C++?
- 9. C++ Suprimir la inicialización y destrucción automáticas
- 10. ¿Por qué declarar una variable o función estática en C?
- 11. Compruebe si una variable es una matriz
- 12. Mantener una variable global o recrear una variable local en c?
- 13. ¿Está permitiendo que una variable de función PHP sea una cadena o una matriz, un patrón o antipatrón?
- 14. Matriz de una longitud desconocida en C#
- 15. C - cantidad de elementos en una matriz?
- 16. convertir una matriz FileInfo en una matriz de cadenas C#
- 17. Valor de retorno de C++ creado antes o después de la destrucción automática de var.
- 18. Devolución de una matriz sin asignar a una variable
- 19. D: Destrucción garantizado
- 20. ¿Cómo inserto una variable en una matriz de PHP?
- 21. una variable estática en c
- 22. variable de clase de matriz estática "definición múltiple" C++
- 23. Notificación de destrucción de objetos en Ruby
- 24. ¿Cómo funciona una variable en C/C++?
- 25. ¿Hay alguna manera de crear una matriz con una longitud variable en c?
- 26. Inicialización matriz de tamaño variable en Java
- 27. std C++ destrucción elemento contenedor y el comportamiento de inserción
- 28. Serializar una matriz en C#
- 29. Matriz como variable de sesión
- 30. Devuelve una matriz en C++
muchas gracias! – Alexry
Tenga en cuenta que tampoco necesita establecer la referencia a 'null'; JIT/Runtime conspirará para averiguar en qué punto el código ya no usará esa referencia; está muerto y se puede coleccionar en ese punto. Google para las descripciones de 'GC.KeepAlive()' en los blogs de MSDN y aquí en SO para más detalles. –
@Alexry, bienvenido, al igual que @Michael Burr dijo, es * extremadamente raro * en .Net que necesite anular manualmente una variable, por lo general no necesita hacer esto. –