existe-t-il de toute façon pour forcer une contrainte pour une définition générique pour implémenter une "interface générique" ... c'est-à-dire que je veux que la classe prenne en charge la transmission d'une interface et une classe générique contraignante de sorte que la classe implémente l'interface. Par exemple, si je dis:
private static List<T> interfaceList = new List<T>(); public static List<T> InterfaceList {get { return interfaceList;}} public static void Add(S input) { interfaceList.Add(input);}
3 Réponses :
public class Test<T, V> where T : V where V : IEnumerable<int> { }
voulez-vous dire, une contrainte peut également être mise sur t code> comme
où T: interface code>? strong> p> p>
Oh, j'allais pour cela: Liste statique publique
Vous pouvez faire quelque chose comme ça pour l'appliquer au moment de l'exécution au lieu de compiler l'heure.
public class Test<T> where T : class { public Test() { Type t = typeof( T ); if( !t.IsInterface ) throw new ArgumentException( "T must be an interface type" ); } }