J'ai trouvé cette question: Is it possible to specify a generic constraint for a type parameter to be convertible FROM another type? Je suis à la recherche d'un moyen plus intelligent.Déléguer le paramètre Method de IEnumerable <T> au type spécifique
Class A {
public A(string){}
}
Class foo
{
private List<A> content = new List<A>();
public void Add(A a){
content.Add(a);
}
public void Add(string str){
content.Add(new A(str));
}
public void AddRange<T>(IEnumerable<T> iterable) // where T : ???
{
foreach(T t in iterable)
content.Add((A)t); //Error
}
}
L'erreur est:
Cannot convert type 'T' to 'A'
Question: une expression where T : ?
Exists comme "convertable"?
Mise à jour: J'ai deux méthodes: Add(A)
surcharges et Add(string)
i essayer actuellement de convertir T à A. Mais mon principal problème est que je veux utiliser différentes méthodes Add
relatives à T. Ce que je besoin est quelque chose comme:
public void AddRange<T>(IEnumerable<T> iterable) where T : Add(T)
{
foreach (T t in iterable)
this.Add(t);
}
Ce que vous essayez d'obtenir n'est pas clair. Ne veux-tu pas juste "où T: A'? –
Que signifie "convertable"? –
Je veux appeler Ajouter avec deux différents types énumérables: Liste et Liste. –
Syrlia