HashSet <t>在哪里进入VS2012?</t>

时间:2012-11-26 18:56:08

标签: 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 ++编译器不这么认为。

关于去哪里的任何想法?

1 个答案:

答案 0 :(得分:14)

的HashSet&LT;&GT;它是.NET的后期添加,它在.NET 3.5中可用。命名空间较旧,mscorlib.dll包含自.NET 2.0以来的System :: Collections :: Generic中的类,类似Stack&lt;&gt;和队列&lt;&gt;。的HashSet&LT;&GT;在.NET 3.5,System.Core.dll的 new 程序集中添加了它们,他们不想修改2.0程序集。

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

当出现这样的错误时,请始终返回MSDN文档,它表明您需要汇编引用。