dynamischer Rückgabetyp einer Funktion

9

Wie kann ich eine Funktion erstellen, die basierend auf dem Parametertyp einen dynamischen Rückgabetyp hat?

Wie

%Vor%     
DevMania 13.04.2009, 16:14
quelle

5 Antworten

26

Dafür müssten Sie Generika verwenden. Zum Beispiel

%Vor%

In diesem Beispiel sagt ' <T> ' dem Compiler, dass es den Namen eines Typs darstellt, aber Sie wissen nicht, was das im Zusammenhang mit der Erstellung dieser Funktion ist. Du würdest es am Ende so nennen ...

%Vor%     
Adam Robinson 13.04.2009, 16:16
quelle
14

Obwohl die angenommene Antwort gut ist, ist es seit zwei Jahren, seit es geschrieben wurde, also sollte ich hinzufügen, dass Sie verwenden können:

%Vor%

Die Eingabe wird als derselbe Typ zurückgegeben, und Sie müssen die Methode nicht als generische Methode aufrufen.

Referenz:
Ссылка

    
Wil 04.11.2011 10:05
quelle
5

Unter der Annahme, dass Sie eine bekannte Menge von Parametern und Rückgabetypen haben, könnte dies mit einfacher Überladung gehandhabt werden:

%Vor%     
James Curran 13.04.2009 16:20
quelle
1

Dann müssen Sie Generika verwenden.

%Vor%     
J.W. 13.04.2009 16:15
quelle
1

C # ist keine dynamische Sprache. Um dieses Problem in C # zu lösen, können Sie ein generisches Objekt und eine Typumwandlung später auf den Wert zurückführen, der Ihrer Meinung nach der Wert sein sollte - nicht empfohlen. Sie können auch eine Schnittstelle zurückgeben, so dass Sie sich nicht wirklich für eine bestimmte Klasseninstanz interessieren. Andere haben darauf hingewiesen, dass Sie auch Generika verwenden können. Es hängt wirklich davon ab, was Sie im Körper der Funktion tun müssen / wollen, da alle oben genannten Methoden ihre eigenen Einschränkungen haben.

    
pbz 13.04.2009 16:21
quelle

Tags und Links