Was ist der Unterschied zwischen einer generischen Schnittstelle und einer generischen Methode in einer nicht generischen Schnittstelle? Gibt es einen Vorteil gegenüber dem anderen?Generische Methode in nicht generischer Schnittstelle
interface IMyInterface
{
void MyMethod<T>(T param) where T : class;
}
und
interface IMyInterface<T> where T : class
{
void MyMethod(T param)
}
Der Unterschied ist derselbe wie zwischen generischer Klasse und nicht-generischer Klasse mit generischen Methoden. –
Der Unterschied, der bei der generischen Schnittstellenimplementierung der Schnittstelle auch generisch sein sollte, oder den konkreten Typ verwenden. Wo generische Methode verwendet werden kann, wie generische und konkrete Art kann in Laufzeit definiert werden – Fabio
Es hängt nur davon ab, wie Sie die Methode und den Typ verwenden möchten. Es gibt wenig Unterschied in Ihrem spezifischen Beispiel, aber in anderen Fällen möchten Sie, dass ein ganzes Objekt auf demselben Typ operiert. Ehrlich gesagt, Sie werden kein _interface_ mit generischen _methoden_ viel sehen, weil eine Schnittstelle normalerweise über das ganze Objekt ist. Aber wenn Sie eine Situation hatten, in der Sie nur eine oder mehrere Methoden in einer Schnittstelle haben wollten, würden Sie sie generisch machen, aus demselben Grund, wie Sie das in einer Klasse tun würden. Weitere Informationen finden Sie in den markierten Duplikaten. –