https://stackoverflow.com/a/10387423/368896への回答が正しく、次の場合に当てはまることを確認したいと思います。
// These IDataHolder instances contains a property "name",
// and another data member that is a large array.
// A copy constructor exists that makes a deep copy.
public MyFunction(IEnumerable<IDataHolder> columns)
{
// Is the copy constructor called?
this.columns = columns.ToDictionary(c => c.info.name, c => c);
}
私は、コピー コンストラクターが呼び出されていないことを確信しています。つまり、への呼び出しtoDictionaary
はディープ コピーを実行せず、参照のみをコピーします。
しかし、私はこれの確認を見つけることができません。
私は正しいですか?toDictionary()
浅いコピーのみを実行しますか?
(注: 私は C++ の経験が豊富ですが、C# は初めてです。)