は次のように宣言されているTMyRecord
TList<string>
、TList<Double>
、TList<Integer>
またはTList<TMyRecord>
、のような一般的なリストを解放していますか?ジェネリックTList <T>を解放するには?</p> <pre><code>type TMyRecord = record MyString: string; MyDouble: Double; MyInteger: Integer; end; </code></pre> <p>は、追加作業が必要か<code>MyList.Free</code>で十分です:
24
A
答えて
27
エグゼクティブサマリー
MyList.Free
で十分です。
詳細な回答
はTList<T>
汎用コンテナは、その内容を所有しています。コンテナを解放すると、その内容も処分されます。
T
がアンマネージリファレンスである場合、ポインタまたはクラスのいずれかである場合、リストは参照を所有します。それは参照が参照するものを所有していません。したがって、TList<TObject>
がある場合、オブジェクトをいくつか追加してリストを解放すると、参照は破棄されますが、オブジェクトは残ります。ですから、これに対処するにはTObjectList<T>
があります。そのコンテナは、オブジェクトと参照を所有するように構成することができ、適切な時点でオブジェクトを処分することができます。
ここでは、それぞれのリストに値型または管理型のいずれかが含まれています。リストはそれらのオブジェクトを所有し、破壊されたときにそのオブジェクトを処分します。だからあなたのリストのすべてについて、MyList.Free
が必要です。
関連する問題
- 1. Gitは<<<<<<< HEADをファイルに追加し続けます
- 2. cmake -D <var>:<type> = <value>:<type>は何ですか?
- 3. 印刷<<< END;質問
- 4. マングース:スキーマフィールドをIDに設定する方法は?私は<code>email</code>がキーになりたい</p> <pre><code>var UserSchema = new Schema({ , email : { type: String } , passwordHash : { type: String } , roles : { type: [String] } }); </code></pre> <p>:
- 5. Tortoise svn <<<<をファイルに追加しています!
- 6. マップを作成する<String、List <Integer>>
- 7. リストに値を追加する<Map <String、String >>
- 8. Heredoc <<<または<<?
- 9. は、私はRDDが</p> <pre><code>JavaPairRDD<String, List<String>> existingRDD; </code></pre> <p>と呼ばれてい
- 10. 検索文字列は、私は</p> <pre><code>std::vector<std::string> vec; std::string myString; </code></pre> <p>を持っていると私は<code>myString</code>が<strong>大文字小文字を区別しない</strong> comaprisonsを使用して<code>vec</code>であるかどうかを確認する必要が鈍感なC++
- 11. は、私は私の<strong><em>カスタムウィジェットコードから</em></strong>を追加<strong><em>QGridLayout</em></strong>で、QGridLayout
- 12. <type1>「<typename>」「<インターフェイス名>」のインターフェースは「<membername>」を実装する必要があります
- 13. 型変換と型アサーションの違いは何ですか?</p>私が型アサーションや型変換を使用する必要があります <ol> <li><code>v = t.(aType) // type assertion</code></li> <li><code>v = aType(t) // type conversion</code></li> </ol> <p>:
- 14. <code>String</code>別<code>ArrayList</code><code>String</code>の<code>char</code>シーケンスとして<code>ArrayList</code> 1からを見つける必要があり、Javaで8
- 15. THREE.Camera.prototype.lookAt</ <() -</ <はどういう意味ですか?
- 16. Objective-Cでカスタムディレクティブを作成できますか?私が考える</p> <ul> <li>@interface</li> <li>@implementation</li> <li>@end</li> <li>@protocol</li> <li>@property</li> <li>@synthesize</li> </ul> <p>:
- 17. C#XML要素私は特に例えば<code><EmpTypeHeader></code>で<code>EmpList</code>タグの数と<code><EID>.</code></p> <p>を取得する必要がありますXMLノードに
- 18. Map <Integer、String>またはString []?
- 19. C++ベクトル<vector <double>> double **
- 20. <Int> == <String>
- 21. なぜ空の中括弧{{}}が1つの要素がゼロでないstd :: initializer_list <double>を作成するのですか?</p> <pre><code>MyItem(std::initializer_list<double> l) { std::cout << "l size " << l.size() << ")" << std::endl; } </code></pre> <p>重中括弧で、後に呼び出されます:私は次のコンストラクタいる
- 22. fstreamのは、<<
- 23. Typescript。これは必須の参照を追加するための有名な</p> <pre><code>/// <reference </code></pre> <p>ラベルを追加するために必要とされた活字体の古いバージョンでは
- 24. OOD:永続層からオブジェクトを作成する必要はありますか?で</p> <ul> <li>UI</li> <li>CONTROLLER</li> <li>DOMAIN(ビジネスルール)</li> <li>PERSISTENCE</li> <li>MYSQL(デシベル)</li> </ul> <p>:私のソフトウェアで
- 25. Dictionary <string、Dictionary <string、object >>に項目を追加する方法は?
- 26. は、私は私のテーブル<code>new</code>にフィールド<code>photo</code>から<code>~\NewFolder1\</code>を削除する必要が
- 27. CRUDアクションなしでコントローラをルーティングする方法は?</p> <pre><code>class TestsController < ApplicationController def find end def break end def turn end end </code></pre> <p>私はそうのように私の<code>routes.rb</code>ファイルに追加:
- 28. C#ラムダ?</p> <p><code>public int ID;</code></p> <p><code>public MovingObject character;</code></p> <p>私は多分、行う必要があります。クラスのリストでプロパティ(文字)が1
- 29. ArrayList <> vs ArrayList <Integer>
- 30. HashMap <String、Integer> paramをMap <String、Objectに変換する方法>
+1。非常にうまく書かれた質問。 –