Cum se întoarce o listă tstring (orice obiect) de la funcția delphi

Dacă știți că funcțiile din Delphi pot returna orice valoare a unui obiect, cum ar fi TStringList sau TButton. De asemenea, trebuie să știți că trebuie să utilizați acest lucru cu atenție.







Cine ar trebui să elibereze memoria?

În Delphi pentru Win32, fiecare obiect creat manual trebuie, de asemenea, să fie eliberat manual. E ușor. Dacă nu eliberați memoria din obiectele pe care le-ați creat, programul dvs. va prelua în cele din urmă toată memoria Windows și veți primi un mesaj de eroare

Aici este o funcție simplă care returnează un obiect Delphi - TStringList.

Arată foarte simplu. Notă: deoarece funcția returnează un TStringList. iar variabila este declarată implicit în fiecare funcție - rezultatul este variabila TStringList.







Mai mult, când ieșiți din funcție, creați un obiect TStringList. nu este folosit în memorie. Cineva ar trebui să elibereze obiectul înainte de a completa cererea.

Deoarece în majoritatea cazurilor apelați o funcție, atunci când aveți nevoie de rezultatul acesteia, GetStringList va fi apelat dintr-o altă parte a codului:

Acest lucru este important: avem o variabilă de tip TStringList ("sl"). care obține rezultatul funcției GetStringList. ceva face acest lucru și, în final, elimină lista din memorie, prevenind astfel o scurgere de memorie.

Avertisment: când o funcție returnează o instanță a unui obiect, asigurați-vă întotdeauna că obiectul va fi eliberat când nu mai este necesar!

Notă: TStringList nu are nevoie de crearea proprietarului. Pentru obiectele care au nevoie de proprietar, proprietarul însuși este responsabil pentru obiect și el însuși îl distruge!







Articole similare

Trimiteți-le prietenilor: