0
我不知所措。我有一个带有字符串键的Dictionary对象。这些对象是我拥有的自定义类型。这个例子引发InvalidCastException:InvalidCastException调用Dictionary.TryGetValue(String,out对象)时。为什么?
MyObject temp;
if(Dict.TryGetValue("abc", out temp)) //exception
如果我改用 “的containsKey”,我仍然得到一个InvalidCastException:
if(Dict.ContainsKey("abc")) //exception
在这两种情况下,如果我把手表放在快译通[ “ABC”] ,我从字典中获得了我想要的值。异常详细信息不提供额外的信息。
我试着放在一起复制这种情况的小代码示例,但我的代码示例完美工作。我不知道如何为这个问题提供代码示例。
为什么在检查字典中是否存在键时会出现InvalidCastException?为什么ContainsKey甚至需要在其实现中进行任何投射?我该如何解决?
所以你不能重现它,并且在例外中有* no *信息?像,可能是堆栈跟踪?目前还不清楚任何人如何能够提供帮助。 – 2012-02-24 17:02:01
你能发表你的字典的声明吗? ContainsKey只会引发ArgumentNullException而不是InvalidCastException,因此它是您之前正在做的或与您的字典的声明有关的事情。 – Jetti 2012-02-24 17:03:10
你可以添加Dict的声明吗? – 2012-02-24 17:04:18