5

我遇到了这种情况,List在它之后没有指定类型<>

List someVar = new List();

但是,当我在 Visual Studio 中尝试此操作时,出现错误。VS不让我List这样声明的原因是什么?

让我告诉你我在哪里看到的:

public override IEnumerable SomeMethod()
        {
            List someVar= new List();
            // more code
            return someVar;
        }

PS 在联系了项目的所有者后,结果发现 Wordpress在and<>之后删除了标签,所以它实际上应该是andListIEnumerableList<SomeClass>IEnumerable<SomeClass>

public override IEnumerable<SomeClass> SomeMethod()
        {
            List<SomeClass> someVar= new List<SomeClass>();
            // more code
            return someVar;
        }
4

3 回答 3

7

没有一个名为List. 有ArrayList,但是:点击List并按下f12。这将向您显示它的声明位置。有两种选择:

  • 在本地项目中声明了一个与List无关List<T>的类;例如:

    class List { ...} // here we go; a class called List
    
  • 别名(位于using文件顶部)已被用作欺骗List名称;例如:

    using List = System.Collections.Hashtable;
    

    或者

    using List = System.Collections.Generic.List<int>;
    
于 2013-03-15T09:34:24.197 回答
2

您收到错误,因为List.NET Framework 中不存在该类。如果要使用可以容纳任何类型对象的非泛型列表,请使用ArrayList

于 2013-03-15T09:33:02.310 回答
1

我不认识它(我以为是ArrayListList<T>到达之前?)。无论哪种方式,它都是在实现泛型之前发明的旧类。我会用List<object>.

于 2013-03-15T09:32:16.447 回答