2013-03-15 17 views
5

natknąłem tej sytuacji List nie ma określonego typu po nim w <>:W jaki sposób lista może istnieć po <T>?

List someVar = new List(); 

Jednak gdy próbuję to w Visual Studio pojawia się błąd. Jaki jest powód, dla którego VS nie pozwala mi zadeklarować w ten sposób, że jest to List?

Pokażę ci, gdzie widziałem go:

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

PS Po skontaktowaniu się z właścicielem projektu okazało się, Wordpress paski z tagami <> po List i IEnumerable, więc to rzeczywiście powinien być List<SomeClass> i IEnumerable<SomeClass>

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

Czy istnieje klasa ogłosił w jednym ze swoich referencji w formie listy? – Paddy

+0

@Paddy: Nie, nie ma takiej klasy. – Todo

+0

Jakiej wersji .NET używasz i jakie "używasz" masz? – Arran

Odpowiedz

1

nie uznaję go (Myślałem, że to ArrayList przed List<T> przybył?). Tak czy inaczej byłaby to starsza klasa wymyślona przed wprowadzeniem leków generycznych. Użyłbym List<object>.

2

Otrzymujesz błąd, ponieważ klasa List nie istnieje w .NET Framework. Jeśli chcesz użyć nie ogólnej listy, która może pomieścić dowolny typ obiektu, użyj ArrayList.

7

Nie ma wbudowanej klasy o nazwie List. Istnieje ArrayList, ale: kliknij List i naciśnij f12. To pokaże ci, gdzie jest zadeklarowana. Istnieją dwie opcje:

  • klasy o nazwie List czyli nic wspólnego z List<T> został ogłoszony w lokalnym projekcie; Np

    class List { ...} // here we go; a class called List 
    
  • using ps (na początku pliku), został użyty do podszycia List jako nazwa; na przykład:

    using List = System.Collections.Hashtable; 
    

    lub

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

Naciśnięcie klawisza F12 nie powiedzie się, ponieważ VS go nie rozpoznaje. – Todo

+0

@Todo Sprawdź swoje referencje projektowe, może być brakujący zestaw referencyjny – ken2k

+1

@ Too I * znaczy * naciśnij F12 w projekcie, w którym został użyty –

Powiązane problemy