6
votes

VB.NET: Effacement de tous les contenus de la matrice de chaîne

J'ai ceci:

    Dim split As String() = temp_string.Split(",")

    ''#feed all info into global variables
    patient_id = split(0)
    doc_name = split(1)
    lot__no = split(2)
    patient_name = split(3)


0 commentaires

4 Réponses :


13
votes
Array.Clear(split, 0, split.Length)

0 commentaires

4
votes

Vous pouvez toujours le définir sur rien qui effacera la référence. Ensuite, le collecteur des ordures prendra soin du reste quand il trouve que c'est une bonne idée. XXX

Cependant, s'il s'agit d'une variable locale d'une méthode, vous n'avez généralement pas besoin de vous inquiéter de Ceci, le tableau sera disponible pour la collecte des ordures dès qu'il dépasse de la portée.


3 commentaires

Pourquoi votre méthode est-elle meilleure que celle ci-dessous? Vous ne faites que dire split = rien?


Je supposerais que après Array.clear , SplitTy tient toujours une référence au tableau (désormais effacé). Dans mon échantillon, il ne fera rien. Je dirais que dans la plupart des cas normaux, la différence ne sera pas notable (je suppose que la division est une variable locale dans une méthode qui dépasse la portée lorsque la méthode est terminée).


+1 pour "pas besoin de s'inquiéter de cela" Il n'y a pas de bonne raison de le définir à moins que le tableau lui-même est une variable globale, et c'est peu probable.



8
votes
ReDim split(-1)

2 commentaires

Pourquoi votre méthode est-elle meilleure que les deux ci-dessous


Les différentes méthodes: Redim Split (-1) Cela laisse la matrice comme une matrice de chaîne avec des éléments zéro. Array.clear (Split, 0, Split.Length) Cela laisse la matrice avec tous les éléments de ce qu'il est attribué une valeur de rien. Split = Rien que cela ne laisse diviser assigné une valeur de rien. Ce qui est mieux? Cela dépend, mais parfois cela fait une différence. Par exemple, si vous utilisez ultérieurement Ubound pour trouver la limite supérieure de la scission, vous obtiendrez 0, 3 ou une erreur pour ces trois cas.



6
votes

Pas besoin de faire quoi que ce soit. Le collectionneur des ordures fera ses travaux qui éliminent la variable. Définir explicitement chaque variable à rien ne ralentira votre application.


0 commentaires