5

Listの後にタイプが指定されていないこの状況に遭遇しました<>

List someVar = new List();

ただし、Visual Studio でこれを試すと、エラーが発生します。ListVSがこのように宣言させない理由は何ですか?

私が見た場所をお見せしましょう:

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

PS プロジェクトの所有者に連絡したところ、Wordpress はandの<>後のタグを削除したことが判明したので、実際にはandのはずですListIEnumerableList<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ます。これにより、宣言されている場所が表示されます。次の 2 つのオプションがあります。

  • 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クラスが.NETFrameworkに存在しないため、エラーが発生します。任意のタイプのオブジェクトを保持できる非ジェネリックリストを使用する場合は、ArrayListを使用します。

于 2013-03-15T09:33:02.310 に答える
1

私はそれを認識していません(私はそれが到着ArrayListする前だったと思いましたか?)。List<T>いずれにせよ、ジェネリックスが実装される前に発明された古いクラスになります。私は使用しますList<object>

于 2013-03-15T09:32:16.447 に答える