Func mit unbekannter Anzahl von Parametern

8

Betrachten Sie den folgenden Pseudocode:

%Vor%

Die Funktion akzeptiert Func<> mit unbekannter Anzahl generischer Parameter und eine Liste der entsprechenden Argumente. Ist es möglich, es in C # zu schreiben? Wie definiert und ruft Foo auf? Wie übergebe ich args an f ?

    
user2341923 03.04.2014, 09:59
quelle

4 Antworten

9

Das ist nicht möglich. Im besten Fall könnten Sie einen Delegaten haben, der auch eine variable Anzahl von Argumenten akzeptiert und dann die Argumente durch den Delegierten parsen lassen

%Vor%


%Vor%     
dcastro 03.04.2014, 10:04
quelle
8

Sie können Delegate mit DynamicInvoke verwenden.

Damit müssen Sie nicht mit object[] in f umgehen.

%Vor%

Verwendung:

%Vor%

Ich habe eine Geige erstellt, die einige Beispiele zeigt: Ссылка

Hinweis:

Wenn Sie method group verwenden möchten, müssen Sie ein explizites Casting für Func :

verwenden %Vor%

Geige: Ссылка

    
Renan Araújo 18.02.2016 16:51
quelle
0

In einigen Fällen können Sie vielleicht mit einem Trick wie diesem davonkommen:

%Vor%     
DDRider62 27.01.2017 15:42
quelle
-1

Sie könnten etwas Ähnliches wie das, was ich hier gepostet habe, ausprobieren: Ссылка

Es erlaubt eine beliebige Anzahl von Argumenten und erzwingt deren Typen.

%Vor%

um es einfach zu nennen ...

%Vor%     
Bryan Clark 29.11.2017 15:59
quelle