2013-03-15 1 views
5

私はList<>で、それの後に指定されていませんタイプを持っていないこのような状況に出くわした:私は、Visual Studioでこれをしようとすると、しかし、私はエラーを取得するリストの後ろに<T>のないリストはどのように存在しますか?

List someVar = new List(); 

。 VSの理由は、私がListこのように宣言させない理由は何ですか?

私はそれを見たところ、私がお見せしましょう:

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

PSそれは実際にList<SomeClass>IEnumerable<SomeClass>する必要がありますので、プロジェクトの所有者を接触させた後、それは、WordpressのはListIEnumerable後のタグに<>をストライピング判明

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

はリストとしてご参照のいずれかで宣言されたクラスはありますか? – Paddy

+0

@Paddy:いいえ、そのようなクラスはありません。 – Todo

+0

.NETのどのバージョンを使用していますか、どのような 'を使用していますか? – Arran

答えて

1

私は(私はそれが到着したList<T>ArrayListだと思った?)それを認識しません。いずれにせよ、ジェネリック医薬品が導入される前に創られたより古いクラスであろう。私はList<object>を使います。

2

Listクラスが.NET Frameworkに存在しないため、エラーが発生します。任意のタイプのオブジェクトを保持できる非ジェネリックリストを使用する場合は、ArrayListを使用します。

7

Listという名前のインラインビルドクラスはありません。 ArrayListがありますが、Listをクリックし、f12を押します。これにより、宣言された場所が表示されます。 2つのオプションがあります。

  • List<T>を行うには全くものではありませんListというクラスがローカルプロジェクト内で宣言されていますが、例えば:(ファイルの先頭に)

    class List { ...} // here we go; a class called List 
    
  • usingエイリアス名としてListを偽装するために使用されています。例えば:

    using List = System.Collections.Hashtable; 
    

    または

    using List = System.Collections.Generic.List<int>; 
    
+0

F12を押すと、VSがそれを認識しないため、どこにも行きません。 – Todo

+0

@Todoプロジェクト参照を確認すると、参照されていないアセンブリがある可能性があります – ken2k

+1

@Todo I *は*使用しているプロジェクトでF12を押します。 –

関連する問題