Classes & méthodes génériques
Bonjour,
je n'ai jamais utilisé les génériques et j'ai un peu de mal à appréhender le concept, alors je ne sais pas si l'utilisation que j'en fais ici est la bonne.
J'ai créé une méthode générique qui manipule des objets Movie, Book, Music héritant tous d'une classe Media:
Code:
1 2 3 4 5 6
| public static partial class WebDataQuery
{
public static T GetMedia<T>(T item) where T : Media
{
}
} |
Cette méthode doit faire des traitements internes en appelant d'autres classes (privées à WebDataQUery) qui, elles sont spécifiques et ne traitent qu'un seul type d'objet: Movie, Book, Music...
Selon le type de item, je dois donc appeler l'une de ces classes DataHelpers:
Code:
1 2 3 4 5 6 7 8
|
public static T GetMedia<T>(T item) where T : Media
{
if (typeof(T) == typeof(Movie))
{
DataHelpers.MyMovieHelper.GetData((Movie)item);
}
} |
La méthode DataHelpers.MyMovieHelper.GetData() ne traite donc que des objets Movie et renvoie un objet Movie.
Seulement j'ai une erreur sur (Movie)item : Cannot convert type 'T' to 'Movie'
Comment dois-je procéder ?
Pour être plus clair, le tout s'articule ainsi:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public static partial class WebDataQuery
{
public static T GetMedia<T>(T item) where T : Media
{
if (typeof(T) == typeof(Movie)) { DataHelpers.MyMovieHelper.GetData((Movie)item);}
}
private static class DataHelpers
{
public static Class MyMovieHelper
{
public static Movie GetData(Movie mymovie) { return mymovie;}
}
}
} |