Je voulais dériver une classe à partir de Predicate < IMyInterface>, mais il semble que le prédicat <> soit scellé. Dans mon cas, je voulais simplement retourner le résultat inversé (!) De la fonction désignée. J'ai d'autres moyens d'atteindre l'objectif. Ma question est de savoir ce que les concepteurs de MS ont pu penser en décidant de sceller le Prédicat <>?Pourquoi Predicate <> est-il scellé?
Sans beaucoup de réflexion je suis venu avec: (a) simplifié leur test, juste un temps vs le commerce des coûts hors (b) « Incorrect » pourrait venir de tirer de prédicats <>
Qu'est-ce que vous pense? Mise à jour: Il y a n prédicats qui sont ajoutés dynamiquement à une liste de prédicats pendant une phase d'initialisation. Chacun est mutuellement exclusif (si Abc est ajouté, NotAbc ne sera pas ajouté). J'ai observé un modèle qui ressemble à:
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
ne est pas que je ne peux pas résoudre le problème, son que je me demande pourquoi je ne pouvais pas le résoudre d'une certaine façon.
Quand vous avez dit "inversé" je n'étais pas sûr de ce que vous vouliez dire. Pour moi, l'inverse d'une fonction de A à B est une fonction de B à A. Je pense que "negated" pourrait être plus clair. Que cherchez-vous vraiment? –
Je suis désolé, mais après avoir mis à jour, je ne comprends tout simplement pas la question: demandez-vous comment avoir une liste de délégués et pour ceux qui n'existent pas - vous ajoutez le délégué nié? –