0

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

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

当我在其上设置断点并使用 Visual Studio 2010 检查params变量中的内容时,它正确显示了两个保存键和值的私有变量,但对于键和值属性,它显示错误,例如“键不存在”。

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

1 回答 1

0

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

最新版本的 Visual Studio 不支持 C++/CLI 的 Intellisense 并且经常观察变量根本无法破译,更不用说部分如您所见。

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

于 2012-07-02T21:19:52.140 回答