나는 분실했습니다. 문자열 키가있는 Dictionary 개체가 있습니다. 개체는 내가 가진 사용자 지정 형식입니다. [ "ABC"를] 내가 DICT에 시계를 넣어 경우, 두 경우 모두Dictionary.TryGetValue (String, out object)를 호출 할 때 InvalidCastException이 발생합니다. 왜?
if(Dict.ContainsKey("abc")) //exception
: 내가 대신 "ContainsKey"를 사용하는 경우, 나는 여전히 InvalidCastException이 얻을
MyObject temp;
if(Dict.TryGetValue("abc", out temp)) //exception
:이 예에서는 InvalidCastException이를 던졌습니다 , 나는 사전에서 원하는 가치를 얻는다. 예외 세부 정보는 추가 정보를 제공하지 않습니다.
이 상황을 복제하는 작은 코드 샘플을 모으려고했지만 코드 샘플이 완벽하게 작동합니다. 이 문제에 대한 코드 샘플을 제공하는 방법을 모르겠습니다.
사전에서 키의 존재 여부를 확인할 때 InvalidCastException이 발생하는 이유는 무엇입니까? 왜 ContainsKey는 구현시 캐스팅을 수행해야합니까? 이 문제를 어떻게 해결할 수 있습니까?
따라서 재생산 할 수 없으며 예외에는 * 정보가 없습니다. 아마도, 스택 추적은? 누군가가 도울 수있는 방법이 명확하지 않습니다. –
사전의 선언을 게시 할 수 있습니까? ContainsKey는 InvalidCastException이 아닌 ArgumentNullException만을 throw하므로 이전에 수행 중이거나 사전 선언과 관련이있는 작업입니다. – Jetti
Dict 선언을 추가 할 수 있습니까? –