Вопрос по обобщениям C # - ограничение общего интерфейса

Допустим, у меня есть некий базовый интерфейс, управляемый дженериками:

public interface Inteface<T> {
   void Foo(T t);
}

Теперь у меня есть конкретная реализация этого интерфейса, который также является универсальным:

public class InterfaceImpl<T> {
   public void Foo(T t) {
      // Whatever
   }
}

Выглядит нормально, но теперь предположим, что у меня есть другой класс:

public class Ololo {
   public void BadFunction<TShouldModelInterface>(TShouldModelInterface shouldModelInterface) {
      // Whatever
   }
}

И скажем, я хочу выполнить проверку, реализует ли TShouldModelInterface какой-либо из возможных Interface ].

Если бы интерфейс не был универсальным, я бы просто написал что-то вроде , где TShouldModelInterface: Interface .

Но есть ли способ решить эту проблему, если интерфейс является объявлен как Interface ?

5
задан Daniel Mošmondor 10 December 2010 в 11:31
поделиться