私は途方に暮れています。String キーを持つ Dictionary オブジェクトがあります。オブジェクトは、私が持っているカスタム タイプです。この例では、InvalidCastException がスローされます。
MyObject temp;
if(Dict.TryGetValue("abc", out temp)) //exception
代わりに「ContainsKey」を使用すると、InvalidCastException が発生します。
if(Dict.ContainsKey("abc")) //exception
どちらの場合も、Dict["abc"] を監視すると、必要な値が Dictionary から取得されます。例外の詳細は、追加情報を提供しません。
この状況を再現する小さなコード サンプルをまとめてみましたが、私のコード サンプルは完全に機能します。この問題のコード サンプルを提供する方法がわかりません。
ディクショナリにキーが存在するかどうかを確認するときに InvalidCastException が発生するのはなぜですか? ContainsKey がその実装でキャストを行う必要があるのはなぜですか? これを修正するにはどうすればよいですか?