c++-cli - HashSet <T>在VS2012中哪里去了?

标签 c++-cli visual-studio-2012 hashset

我最近安装了VS2012。在VS2010下可以正常编译的C++项目(带有.Net 4.0)无法识别VS2012上的HashSet<T>。我什至尝试通过以下声明来明确表达:

System::Collections::Generic::HashSet< String^ >^ _reasons;

但这只会导致错误:
error C2039: 'HashSet' : is not a member of 'System::Collections::Generic

该文档说它在System.Collections.Generic中。 C++编译器不这么认为。

有什么想法吗?

最佳答案

HashSet <>是.NET的后期添加,它在.NET 3.5中可用。命名空间较旧,mscorlib.dll从.NET 2.0开始包含在System::Collections::Generic中的类,如Stack <>和Queue <>的类。 HashSet <>已添加到.NET 3.5的新程序集System.Core.dll中,他们不想修改2.0程序集。

因此,您必须添加对System.Core的引用,以避免出现错误消息。

当您遇到这样的错误时,请始终引用MSDN文档,这表明您需要程序集引用。

关于c++-cli - HashSet <T>在VS2012中哪里去了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13571277/

相关文章:

.net - 如何多次使用 ConsoleCancelEventHandler

c# - 向 C# 公开 ISO C++ 类

java - 访问 Set Java 中的数据

c++ - NO 带有字符串数组的存储类或类型说明符

crash - 应用程序关闭时 CLI DLL 中无法解释的崩溃

c++ - .template 文件的 VS2012 保留字颜色

visual-studio - Azure SDK 2.0 升级按钮不可用

visual-studio-2012 - Visual Studio 中项目上的锥形瓶图标是什么意思?

java - 如何创建随机字母的单词?

java - Java HashSet <ArrayList <Integer >>包含重复项[duplicate]