2010-10-20 8 views
1

Je reçois une erreur lorsque je tente de créer une méthode avec la signature suivante:Liste générique Méthode problème

public List<T> CreateList(DataSet dataset) 


Error 1 The type or namespace name 'T' could not be found (are you missing a using directive or an assembly reference?) 

Est-ce que quelqu'un sait ce que je fais mal?

Merci d'avance!

+0

Merci pour toutes les réponses, m'a aidé à sortir des charges! – Zack

Répondre

7

T doit être déclarée soit au niveau de la méthode:

public List<T> CreateList<T>(DataSet dataset) 

ou au niveau de la classe contenant:

public class Foo<T> 
{ 
    public List<T> CreateList(DataSet dataset) 
    { 
     ... 
    } 
} 

Mais attention à ne déclarer ce à deux endroits:

// Don't do this 
public class Foo<T> 
{ 
    public List<T> CreateList<T>(DataSet dataset) 
    { 
     ... 
    } 
} 
3

Puisque vous êtes déjà Dans une méthode générique, l'espace réservé de type doit faire partie de la déclaration de la méthode, et pas seulement de son type de retour. Essayez:

public List<T> CreateList<T>(DataSet dataset)