Quería derivar una clase del predicado < IMyInterface>, pero parece que el predicado <> está sellado. En mi caso, quería simplemente devolver el resultado invertido (!) De la función designada. Tengo otras formas de lograr el objetivo. Mi pregunta es ¿en qué podrían haber estado pensando los diseñadores de MS al decidir sellar Predicate <>?¿Por qué se sella el predicado <>?
Sin pensarlo mucho me ocurrió: (a) simplificado sus pruebas, sólo una vez contra el comercio coste fuera (b) "no es bueno" podrían provenir de derivados de predicado <>
¿Qué haces ¿pensar?
Actualización: hay n predicados que se agregan dinámicamente a una lista de Predicados durante una fase de inicialización. Cada uno es mutuamente exclusivo (si se agrega Abc, no se agregará NotAbc). He observado un patrón que se parece 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
No es que no puedo resolver el problema, su que me pregunto por qué no podía resolverlo de una manera determinada.
Cuando dijiste "invertido" no estaba seguro de lo que querías decir. Para mí, el inverso de una función de A a B es una función de B a A. Creo que "negado" podría ser más claro. ¿Qué es lo que realmente estás buscando? –
Lo siento, pero después de que lo actualizaste, simplemente no entiendo cuál es la pregunta: ¿estás preguntando cómo tener una lista de delegados y para los que no existen, agregas el delegado negado? –