私はMSDNで見つけることができませんので、ここでもう一度やり直しています:)要素を追加するとき、boxedで新しいオブジェクトへの参照がコレクションに追加されます(値型の場合)。参照はarraylistに追加されます。あれは正しいですか?ArrayList.Add - 参照のみを追加しますか?
EDIT:だから、一つ一つが正しいヒープ<
私はMSDNで見つけることができませんので、ここでもう一度やり直しています:)要素を追加するとき、boxedで新しいオブジェクトへの参照がコレクションに追加されます(値型の場合)。参照はarraylistに追加されます。あれは正しいですか?ArrayList.Add - 参照のみを追加しますか?
EDIT:だから、一つ一つが正しいヒープ<
上の値を参照するObjectクラスの単なるインスタンスが含まれています。
しかし、実際のコードでは、ArrayList
ではなく、List<T>
という一般名を使用する必要があります。
はい。それは正しいです。
リスト<>は動作が異なります。
はい、正しいですが、とにかくArrayListを使用してジェネリックスに固執するべきではありません。
はい正しいです。
ArrayListのは、汎用ではありません(それはFxの1.1からである)ので、いつでもあなたはAdd(x)
を呼び出す
void Add(System.Object item) { ... }
のようなメンバーが、x
はSystem.Object
型指定された参照に変換する必要があります。任意のオブジェクト参照のための些細なアップキャストがボクシングは値の型に必要です。
ここで過半数に参加する:もうほとんど使用しないでください。これは2005年より前に開始されたコードと、混合型を格納する非常にまれな状況のためだけです。
はい、参照を追加するだけです。
これはシャローコピーリファレンスと呼ばれます。あなたの場合、ディープコピーを実装して新しいオブジェクトを作成し、そのオブジェクトに値をコピーする必要があります。
明確にする:Valueタイプでは動作しますが、Referencesでも同じです。 –