Proprio imbattuto in questo oggiPerché non si può usare la funzione anon con un parametro dinamico?
una funzione anonima o il gruppo metodo non può essere usato come un valore costituente di un'operazione legata in modo dinamico.
quando si cerca di fare
static R ifNotNull<R>(dynamic o, Func<dynamic, R> returnFunc, R otherwise) {
return ReferenceEquals(null, o) ? otherwise : returnFunc(o);
}
e utilizzarlo con
dynamic firstAddress = ...;
return ifNotNull<string>(firstAddress, (a) => a.address_1, null)
Ora la maggior parte delle limitazioni sulle dinamiche senso per me - non è possibile utilizzare un metodo di estensione perché come il compilatore dovrebbe decidere quale statico compilarlo? Ma non capisco questo qui. Da dove viene la confusione? Qual è esattamente la limitazione?
C'è probabilmente un problema con la compilazione '(a) => a.address_1' in un' returnFunc'.In attesa di Eric Lippert per rispondere a questa domanda :-) – dasblinkenlight
A proposito, qual è la differenza tra il tuo codice e 'statico R ifNotNull (oggetto o, Func
@dasblinkenlight esattamente quello che stavo pensando. Prepararsi a Lippert in 3..2..1 ... –