2012-11-26 18 views
9

Tôi vừa cài đặt VS2012. Một dự án C++ (với .Net 4.0) biên dịch tốt dưới VS2010 không công nhận HashSet<T> trên VS2012. Tôi thậm chí đã cố gắng là rõ ràng với lời tuyên bố sau đây:Trường hợp đã thực hiện HashSet <T> trong VS2012?

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

Nhưng mà kết quả chỉ trong các lỗi:

error C2039: 'HashSet' : is not a member of 'System::Collections::Generic 

Các tài liệu nói nó ở System.Collections.Generic. Trình biên dịch C++ không nghĩ vậy.

Bất kỳ ý tưởng nào về vị trí của nó?

+2

* Dự án C++ (có .Net 4.0) * Ouch. Trong ** bình thường ** C++, có 'unordered_set'. –

+1

Đây có phải là C++ - CLI không? –

+4

Bạn có lắp ráp 'System.Core' được tham chiếu? Hệ thống :: Bộ sưu tập :: Không gian tên chung tồn tại trong một số hội đồng, bạn sẽ nhận được thông báo lỗi đó nếu bạn tham khảo một trong số chúng, nhưng không phải là một trong đó bao gồm HashSet. –

Trả lời

14

HashSet <> là một bổ sung muộn cho .NET, nó đã có sẵn trong .NET 3.5. Không gian tên cũ hơn, mscorlib.dll chứa các lớp trong System :: Collections :: Generic từ .NET 2.0, các lớp như Stack <> và Queue <>. HashSet <> đã được thêm vào trong một mới lắp ráp cho .NET 3.5, System.Core.dll, họ không muốn tinker với các hội đồng 2.0.

Theo đó, bạn phải thêm tham chiếu vào System.Core để tránh thông báo lỗi.

Luôn luôn tham khảo lại tài liệu MSDN khi bạn nhận được một lỗi như thế này, nó cho thấy bạn muốn tham khảo lắp ráp là bắt buộc.

+0

Cảm ơn Hans. Nó đã không xảy ra với tôi rằng tôi sẽ cần phải thêm một tài liệu tham khảo mới kể từ khi tôi đã không thay đổi. Net khuôn khổ tôi đã được biên dịch chống lại. Bây giờ tôi biết. –

+0

Vâng, bạn đã thực sự. Bạn đã thay đổi mục tiêu từ 2.0 thành 3.5, phiên bản duy nhất có System.Core. IDE C++ không phức tạp về nó như C# hay VB.NET IDE. Khá điển hình về công cụ C++, nó giả định bạn biết bạn đang làm gì. –

+1

Câu trả lời tuyệt vời, nhưng để giúp đỡ những người khác C++ mới như tôi, đây là những gì tôi tham khảo trông giống như để sửa chữa nó: # using Mizmor

Các vấn đề liên quan