나는이 바보 같은 질문 경우 죄송하지만 저를 듣고 : 위의 코드 샘플에서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 싶지 않아 할 수 있습니까? 내가 여기서 뭔가를 놓치고 있니?
그래, 그렇긴하지만 전문 Dictionary가 아니라 특수 StringDictionary가 아닌가? 왜 나는 매우 편리한 과부하가 특수 StringDictionary에 구현되지 않았는지 궁금합니다. –
Pandincus
제 생각에는 그는 제네릭 타입이 이런 종류의 생성자를 가지고 있다고 말하는 것 같지만 오래된 전문 사전은 그렇지 않습니다. – Keltex
@Pandincus : Keltex는 정확합니다. 특수 형식 사전은 오버로드 된 생성자가 아니며 이전 형식이기 때문에 복사 생성자가 그 당시 고려되지 않았을 가능성이 큽니다. 그럼에도 불구하고'Dictionary'을 사용하고'StringDictionary'를 포기하는 것이 좋습니다. –