2013-03-29 3 views

답변

27

내용 요약

MyList.Free 충분하다.

TList<T> 일반 컨테이너의 내용을 소유

자세한 대답. 당신이 콘테이너를 풀 때, 내용은 또한 처분된다.

T이 관리되지 않는 참조 인 경우 포인터 또는 클래스 중 하나 인 경우 목록에 참조가 있습니다. 참조가 언급 한 것을 소유하지 않습니다. 따라서 TList<TObject> 인 경우 일부 개체를 추가 한 다음 목록을 비우면 참조가 삭제되지만 개체는 그대로 유지됩니다. 그래서 이것을 처리하기 위해 TObjectList<T>이 있습니다. 이 컨테이너는 참조뿐만 아니라 객체를 소유하도록 구성 할 수 있으므로 적절한 순간에 객체를 처리 할 수 ​​있습니다.

이제는 각 목록에 값 형식 또는 관리되는 형식이 포함됩니다. 그 목록은 그 물건들을 소유하고 그것들이 파괴 될 때 처분합니다. 따라서 모든 목록에 대해 MyList.Free 만 있으면됩니다.