![]() |
Sauber Programmieren: Variablen zurücksetzen?
Hallo!!
Ist es eigentlich notwendig, die verwendeten Variablen eines begin...end am Schluss manuell zurückzusetzen, also z.B. so:
Delphi-Quellcode:
Oder macht Delphi das ausreichend von alleine?
Procedure MeineProcedure;
var s: String; i: integer; myarray: Array of TString; begin // code code code code s := ''; i := -1; SetLength(MyArray, 0); end; [edit=alcaeus]code- durch delphi-Tags ersetzt. Bitte in Zukunft die richtigen Tags verwenden, Danke. Mfg, alcaeus[/edit] |
Re: Sauber Programmieren: Variablen zurücksetzen?
variablen innerhalb einer prozedur werden auf den stack abgelegt wenns nicht gerade ein string ist
aber da macht delphi das auch noch selber einzigst bei komponenten die du erzeugst, die solltest du mit .free wieder freigeben |
Re: Sauber Programmieren: Variablen zurücksetzen?
Zitat:
Delphi-Quellcode:
FreeAndNil(MyObj);
|
Re: Sauber Programmieren: Variablen zurücksetzen?
sollte man ein dynamisches array nicht auch besser wieder auf die länge null setzen (und eventuell noch finalize'n)?
|
Re: Sauber Programmieren: Variablen zurücksetzen?
Das da geht in Richtung lokale/globale Variablen ! Woher soll denn das arme Programm wissen, was noch passiert ? Die Variablen müssen also nicht "zurückgesetzt" werden, sondern nur richtig initialisiet werden beim Programmstart.
|
Re: Sauber Programmieren: Variablen zurücksetzen?
Zitat:
aber "einfache" lokale variablen (wie z.b. Integer, Chars, statische Arrays etc) muss man nicht wieder auf einen standardwert setzen, da die variablen eh im stack liegen, der nach verlassen der procedure eh nichtmehr erreichbar ist. |
Re: Sauber Programmieren: Variablen zurücksetzen?
Zitat:
|
Re: Sauber Programmieren: Variablen zurücksetzen?
Zitat:
|
Re: Sauber Programmieren: Variablen zurücksetzen?
naja ein "array of TString" gehört da ja nicht unbedingt dazu, und das muss man sogar in zweifacher hinsicht freigeben - erst die TStrings einzeln, und dann noch das array auf Länge null setzen.
|
Re: Sauber Programmieren: Variablen zurücksetzen?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz