Я должен хранить TList чего-то, что может быть легко реализовано как запись в Delphi (пять простых полей). Однако мне не ясно, что происходит, когда я делаю TList<TMyRecordType>.Add(R)
.
Поскольку R - это локальная переменная в процедуре, в которой я создаю свой TList, я предполагаю, что память для него будет освобождена, когда функция вернется. Оставляет ли это неверный указатель записи в списке? Или список знает, чтобы скопировать по назначению? Если первое, я полагаю, мне придется вручную управлять памятью для R с New () и Dispose (), это правильно?
Кроме того, я могу «преобразовать» свой тип записи в тип класса, просто объявив поля общедоступными (даже не удосужившись сделать их формальными свойствами). Это считается нормальным, или я должен потратить время на создание класса с закрытыми полями и общими свойствами?