Есть ли в любом случае принудительное ограничение для универсального определения для реализации «универсального интерфейса» ... то есть я хочу, чтобы класс поддерживал передачу интерфейса, а универсальный класс ограничивал его, чтобы класс реализовывал интерфейс. Например, если я скажу:
MyGenericClass<IMyInterface, MyImplementation>.DoSomething();
Это должно быть ограничено, чтобы MyImplementation реализовывал IMyInterface
Насколько я знаю, это может быть достигнуто
public class Dynamic_Loader<T, S> where S: T
Теперь, есть ли способ заставить T быть интерфейсом?
Редактировать: Цель этого состояла в том, чтобы иметь что-то вроде:
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);}
и список ограничен только интерфейсами (поскольку предполагается, что он возвращает реализации определенных интерфейсов)