C ++ / CLI:KeyValuePair<>密钥和值不存在

时间:2012-07-01 17:57:23

标签: c++-cli managed

我正在使用C ++ / CLI编写我的第一个类库,在尝试访问KeyValuePair类的Key和Value属性时遇到错误。

KeyValuePair<String^, LONG>^ params = gcnew KeyValuePair<String^, LONG>(readerName, hContext);

当我在它上面创建一个断点并使用Visual Studio 2010检查params变量中的内容时,它正确地显示了两个保存键和值的私有变量,但是对于Key和Value属性,它显示错误说明了某些内容比如“钥匙不存在”。

ошибка: "System::Collections::Generic::KeyValuePair<System.String ^,int>(params.Key" не существует

1 个答案:

答案 0 :(得分:0)

LONG可能不是用作任何泛型类的参数类型的最佳选择。甚至可能根据您的构建方式定义甚至不定义。使用int或long,或者更好的是Int32或Int64。

最新版本的Visual Studio不支持Intellisense for C ++ / CLI,并且通常无法对变量进行解密,更不用说你所看到的部分了。

结论:不要指望IDE / Debugger完全适用于C ++ / CLI代码。只需输出到调试流或以其他方式测试您自己的代码中的变量,看它是否按预期显示/工作。在Managed C ++方面,不要相信调试器。