を実装するカスタム クラスを作成していますIDictionary
が、どうすればよいかわかりませんCopyTo
。各要素をターゲット配列にコピーするだけ (浅いコピー) にするか、各要素のコピー/クローンを作成してからターゲット配列に配置する (ディープ コピー) べきですか?
1179 次
1 に答える
5
実装はコントラクトによって定義されていませんが、すべてのジェネリック コレクションは浅いコピーを行うように見えます ( http://referencesource.microsoft.com/#q=List.CopyToを参照)。object
実装の一部となる任意の をディープ コピーする定義された方法がないため、これは理にかなっていCopyTo
ます。
シナリオによって異なります。このメソッドをまったく使用するつもりがない場合は、実装せずにNotSupportedException
. 他のユーザーがあなたのコレクションを使用する場合は、浅いコピーを実装して、標準の .NET ライブラリに合わせます。ディープ コピー メソッドが必要な場合は、別のメソッドとして追加します (場合によっては を実装しますICloneable
)。
于 2015-06-09T02:35:18.840 に答える