Predicate<IMyInterface> からクラスを派生させたかったのですが、Predicate<> が封印されているように見えます。私の場合、指定された関数の反転 (!) 結果を単純に返したいと考えていました。目標を達成するための他の方法があります。私の質問は、Predicate<> を封印することを決定したとき、MS の設計者は何を考えていたのでしょうか?
私が思いついたのは、あまり考えずに: (a) テストを単純化し、時間とコストのトレードオフだけです (b) Predicate<> から派生することで「ダメ」になる可能性があります
どう思いますか?
更新: 初期化フェーズ中に述語のリストに動的に追加される n 個の述語があります。それぞれが相互に排他的です (Abc が追加された場合、NotAbc は追加されません)。次のようなパターンを観察しました。
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
問題を解決できないのではなく、なぜ特定の方法で解決できなかったのか疑問に思っている.