为什么C ++ / CLI编译器很容易与符号混淆?

时间:2009-09-24 06:10:57

标签: c++-cli

这是我的代码:

using namespace System;
using namespace System::Collections;
using namespace System::Collections::Generic;

namespace Tests {
    ref class MyCollection : public IEnumerable<int> <----HERE!
例如,C#编译器将识别它们在这些命名空间中唯一的IEnumerable<T>来自System::Collections::Generic。为什么C ++ / CLI编译器不能这样做呢?除非我输入其全名或至少Generic::IEnumerable<int>,否则它将无法识别它并将触发C2872错误:模糊符号。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:6)

鉴于你的命名空间,IEnumerable是不明确的

MS在System::CollectionsSystem::Collections::Generic中定义了IEnumerable,你希望你的代码使用哪两个?