Скажем, у меня есть некоторый базовый интерфейс, который дженериков с приводом: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<T>
.
Если интерфейс не был общим, я бы просто написал что-то вроде where TShouldModelInterface : Interface
.
Но есть ли способ решить эту проблему, если интерфейс ?
Я изменил свой титул немного, так что это менее общий – 2010-12-10 11:31:50