Ich wollte eine Klasse von Prädikat < IMyInterface> ableiten, aber es scheint, als ob Prädikat <> versiegelt ist. In meinem Fall wollte ich einfach das invertierte (!) Ergebnis der angegebenen Funktion zurückgeben. Ich habe andere Möglichkeiten, um das Ziel zu erreichen. Meine Frage ist, was könnten die MS-Designer gedacht haben, wenn sie sich entscheiden, Prädikat <> zu versiegeln?Warum ist Prädikat <> versiegelt?
ohne viel Gedanken kam ich mit: (a) ihre Prüfung vereinfacht, um nur Zeit vs Kosten Trade-off (b) „nicht gut“ aus Ableiten von Prädikats kommen konnte <>
Was Sie tun denken?
Aktualisierung: Es gibt n Prädikate, die während einer Initialisierungsphase dynamisch zu einer Liste von Prädikaten hinzugefügt werden. Jede schließt sich gegenseitig aus (wenn Abc hinzugefügt wird, wird NotAbc nicht hinzugefügt). Ich beobachtete ein Muster, das wie folgt aussieht:
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
Es ist nicht, dass ich das Problem nicht lösen kann, sein, dass ich frage mich, warum ich es nicht auf eine bestimmte Weise lösen könnte.
Als Sie "invertiert" sagten, war ich mir nicht sicher, was Sie meinten. Für mich ist die Inverse einer Funktion von A nach B eine Funktion von B nach A. Ich denke, "negiert" könnte klarer sein. Wonach suchen Sie wirklich? –
Es tut mir leid, aber nachdem Sie aktualisiert haben, verstehe ich einfach nicht, was die Frage ist: Fragen Sie, wie Sie eine Liste von Delegaten haben und für diejenigen, die nicht existieren - Sie fügen den negierten Delegaten hinzu? –