2009-10-28 14 views

Respuesta

4

Siempre puede configurarlo en Nothing, lo que borrará la referencia. Entonces el recolector de basura se encargará del resto cuando considere que es una buena idea.

split = Nothing 

Sin embargo, si se trata de una variable local de un método que normalmente no tendría que preocuparse por esto, la matriz estará disponible para la recolección de basura en cuanto se sale del ámbito.

+0

¿por qué su método es mejor que el siguiente? ¿Estás diciendo split = nada? –

+0

Supongo que después de 'Array.Clear', split aún mantendrá una referencia a la matriz (ahora borrada). En mi muestra, no hará referencia a nada. Diría que en la mayoría de los casos normales la diferencia no será notoria (supongo que la división es una variable local en un método que sale del alcance cuando se realiza el método). –

+1

+1 para "no tener que preocuparse por esto" No hay una buena razón para establecerlo en Nothing a menos que la matriz en sí sea una variable global, y eso es poco probable. –

8
ReDim split(-1) 
+0

¿Por qué su método es mejor que los dos siguientes? –

+1

Lo diferente en los tres métodos: redim split (-1) Esto deja la matriz como un conjunto de cadenas con cero elementos. Array.Clear (split, 0, split.Length) Esto deja la matriz con todos sus elementos asignados un valor de nada. dividir = nada Esto deja dividir asignado un valor de nada. ¿Qué es mejor? Depende, pero a veces hace la diferencia. Por ejemplo, si luego usa ubound para encontrar el límite superior de split, obtendrá 0, 3 o un error para estos tres casos. – xpda

5

No hay necesidad de hacer nada. El recolector de basura hará su trabajo despejando la variable. Establecer explícitamente cada variable en nada ralentizará su aplicación.

+0

Esta es la única respuesta correcta provista hasta el momento. –

Cuestiones relacionadas