Powiedzmy mam jakiś podstawowy interfejs, który jest rodzajowych napędzane:C# rodzajowych pytanie - generic ograniczenie interfejs
public interface Inteface<T> {
void Foo(T t);
}
Teraz mam jakąś konkretną implementację tego interfejsu, który jest również ogólna:
public class InterfaceImpl<T> {
public void Foo(T t) {
// Whatever
}
}
To wygląda OK, ale teraz powiedzmy, że mam inną klasę:
public class Ololo {
public void BadFunction<TShouldModelInterface>(TShouldModelInterface shouldModelInterface) {
// Whatever
}
}
I powiedzmy Chcę wykonać sprawdzenie, czy TShouldModelInterface
faktycznie implementuje którykolwiek z możliwych Interface<T>
.
Jeśli interfejs nie był ogólny, wystarczy napisać coś w rodzaju where TShouldModelInterface : Interface
.
Ale czy istnieje sposób rozwiązania tego problemu, jeśli interfejs jest ?
zmodyfikowałem swój tytuł nieco więc jest mniej rodzajowy –
@Daniel ahahah .. rzeczywiście mniej „rodzajowe” –
W przykładzie „” InterfaceImpl „” nie zrealizować „” inteface „” (brakuje "r", btw). Powinieneś zadeklarować ją jako "publiczną klasę InterfaceImpl : Inteface " ' –