私はこれがばかな質問ですが、私を聞く場合は謝罪:上記のコードサンプルでC#.NETでは、StringDictionaryのコピーコンストラクタが存在しない理由はありますか?
Dictionary<string, string> genericDict = new Dictionary<string, string>;
genericDict.Add("blah", "bloop");
// Use the copy constructor to create a copy of this dictionary
return new Dictionary<string, string>(genericDict);
を、私は一般的な辞書のコピーを作成することができます。
ここで、System.Collections.Specialized.StringDictionaryを使用しているとします。なぜなら、どこにでも「文字列」型を入力する気がないからです。 StringDictionaryにはコピーコンストラクタはありません!実際、デフォルトのコンストラクタしかありません。
確かに、私は、StringDictionaryを反復処理し、手動で各キー/値のペアを追加しますが、私は
なぜなしコピーコンストラクタを:-Pしたくないですか?私はここに何かを逃していますか
はい、そうではありませんが、特殊なStringDictionaryではなく、汎用ディクショナリのではありませんか? 私はなぜ、非常に便利なオーバーロードが特殊なStringDictionaryのために実装されていないのだろうと思っていました。 –
Pandincus
ジェネリック型はこの種のコンストラクタを持っていると言っていると思いますが、古い特殊辞書はありません。 – Keltex
@Pandincus:Keltexは正しい - 特殊な辞書はそれが古い型であり、コピーコンストラクタは当時考慮されていなかったので、そのオーバーロードされたコンストラクタはありません。それにもかかわらず、私はあなたが 'Dictionary'を使用し、 'StringDictionary'を放棄することを強く勧めています。 –