Warum können Sie eine Funktion nicht mit einem dynamischen Parameter verwenden?

Just lief in diese heute

Eine anonyme Funktion oder Methodengruppe kann nicht als Bestandteil einer dynamisch gebundenen Operation verwendet werden.

wenn Sie versuchen, @ zu t

static R ifNotNull<R>(dynamic o, Func<dynamic, R> returnFunc, R otherwise) {
    return ReferenceEquals(null, o) ? otherwise : returnFunc(o);
}

und benutze es mit

dynamic firstAddress = ...;
return ifNotNull<string>(firstAddress, (a) => a.address_1, null)

Jetzt sind die meisten Einschränkungen der Dynamik für mich sinnvoll - Sie können keine Erweiterungsmethode verwenden, da der Compiler entscheiden soll, auf welche statische Datei er sie kompilieren soll. Aber ich verstehe das hier nicht. Woher kommt die Verwirrung? Was genau ist die Einschränkung?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage