Dies wurde schon einmal gefragt (glaube ich), aber nachdem ich die vorherigen Antworten durchgesehen habe, konnte ich immer noch nicht herausfinden, was ich brauche.
Sagen wir, ich habe eine private Methode wie:
%Vor%Was ich so benutzen kann:
%Vor% Wie kann ich dann meine GenericMethod
an eine andere Methode übergeben, damit ich sie dann in dieser Methode ähnlich aufrufen kann? z.B.:
Ich kann einfach nicht meinen Kopf herumkommen! Was muss ich als generische Parameter für Action
in AnotherMethod
?!
Sie müssen in AnotherMethod
nicht einen einzelnen Delegaten eines bestimmten Typs übergeben, sondern eine Sache, die Delegierte erzeugt. Ich denke, das kann nur mit Reflektion oder dynamischen Typen geschehen:
Beachten Sie, dass (t, u) => GenericMethod(t, u)
nicht durch nur GenericMethod
ersetzt werden kann.
Ich wollte nur eine andere Lösung posten, die ich vor allem mit Caching für eine Weile nützlich fand. Wenn ich ein Get from Cache mache und das Cache-Element nicht existiert, rufe ich die bereitgestellte Funktion auf, um die Daten zu erhalten, zwischenzuspeichern und zurückzugeben. Aber das kann auch auf Ihre spezifische Art und Weise verwendet werden.
Ihre andere Methode würde eine ähnliche Signatur benötigen, wobei getItemCallback
die GenericMethod()
ist, die Sie ausführen möchten. Das Beispiel wurde aus Platzgründen entfernt.
Dann würden Sie Ihr AnotherMethod()
wie folgt aufrufen
Ich weiß es etwa einige Monate später, aber vielleicht wird es der nächsten Person helfen, da ich vergessen habe, wie man das macht und keine ähnliche Antwort auf SO finden kann.