PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Delegate System.Action akzeptiert keine 1-Argumente

Haftungsausschluss:Ich fühle mich wirklich schlecht, dass ich nichts finden kann das erklärt warum das nicht funktioniert. Wenn jemand weiß; Bitte sagen Sie mir. Google hat hier versagt.

Offensichtlich wählt der Compiler die falsche Überladung für Each aus . Es gibt zwei in der Bibliothek, eine, die eine Action<T> ausführt und eine andere, die eine Action<T, int> ausführt .

Wenn Sie nicht dynamic verwendet haben es würde gut funktionieren (wenn ich raten müsste); aber dynamic verursacht alle möglichen seltsamen Probleme; plus Sie verwenden Mono.

Da der Compiler darauf besteht, dass Sie die andere Überladung verwenden, ist die Lösung einfach genug. Benutze es einfach!

DetectHistoryRebuild(migrationOperations).Each<dynamic>((o, i) => Generate(o));

Sie haben einen zusätzlichen Parameter genommen und ihn nicht verwendet. Es ist nicht das Ende der Welt.

Sie könnten die Action auch einfach explizit instanziieren der Compiler muss also nicht wählen:

DetectHistoryRebuild(migrationOperations).Each<dynamic>(new Action(o => Generate(o)));