Ich frage mich, ob die Länge des Arrays von Delphi auf 0 nach der Verwendung ist eine korrekte Praxis oder nicht.Sollte die Länge des Arrays nach der Verwendung auf Null gesetzt werden?
var
MyArray : array of TObject;
begin
SetLength(MyArray, N);
// do something with MyArray (add items and use it..)
SetLength(MyArray, 0);
end;
Gibt es einen Grund, warum ich die Länge auf 0 setzen sollte?
Ich denke, es ist ein bisschen stark zu erklären, dass dieser Weg der "Beste" ist. Können Sie zumindest begründen, warum es "besser" ist als die beiden Alternativen? –
Ich habe meine Antwort nicht wirklich mit deiner verglichen. Dynamische Arrays werden verwaltet und würden freigegeben, wenn sie nicht referenziert werden. Wenn Sie jetzt nil auf den Zeiger setzen, nehmen Sie die Referenz manuell ab (vorausgesetzt, dass es keine andere Referenz gibt). Deshalb dachte ich, es wäre das Beste, die natürliche Umgebung für den Managementprozess festzulegen, um darauf zu reagieren. –
@DavidHeffernan ist es expliziter, was Sie vorhaben zu tun, es vermittelt die Semantik, nicht die Implementierung. Außerhalb dieser Überlegung ist SetLength-0 natürlich das Gleiche. –