Ho voluto derivare una classe da Predicate < IMyInterface>, ma sembra come se Predicato <> sia sigillato. Nel mio caso volevo semplicemente restituire il risultato invertito (!) Della funzione designata. Ho altri modi per raggiungere l'obiettivo. La mia domanda è: cosa avrebbero pensato i progettisti di MS quando decidevano di sigillare Predicato <>?Perché il predicato <> è sigillato?
senza troppi pensieri mi si avvicinò con: (a) semplificato il loro test, solo un momento vs commercio costo off (b) "non va bene" potrebbe venire da derivante dalla Predicate <>
Cosa ti pensare?
Aggiornamento: ci sono n predicati che vengono aggiunti dinamicamente a un elenco di predicati durante una fase di inizializzazione. Ciascuno è mutuamente esclusivo (se viene aggiunto Abc, non verrà aggiunto NotAbc). Ho osservato un modello che assomiglia a:
bool Happy(IMyInterface I) {...}
bool NotHappy(IMyInterface I) { return !Happy(I); }
bool Hungry(IMyInterface I) {...}
bool NotHungry(IMyInterface I) { return !Hungry(I); }
bool Busy(IMyInterface I) {...}
bool NotBusy(IMyInterface I) { return !Busy(I); }
bool Smart(IMyInterface I) {...}
bool NotSmart(IMyInterface I) {...} //Not simply !Smart
Non è che non riesco a risolvere il problema, la sua che mi chiedo il motivo per cui non ho potuto risolverlo in un certo modo.
Quando hai detto "invertito" non ero sicuro di cosa intendessi. Per me, l'inverso di una funzione da A a B è una funzione da B a A. Penso che "negato" potrebbe essere più chiaro. Cosa stai cercando? –
Mi dispiace, ma dopo aver aggiornato, semplicemente non capisco quale sia la domanda: stai chiedendo come avere un elenco di delegati e per quelli che non esistono - aggiungi il delegato negato? –