我想从 Predicate<IMyInterface> 派生一个类,但它看起来好像 Predicate<> 是密封的。就我而言,我想简单地返回指定函数的反转(!)结果。我还有其他方法可以实现目标。我的问题是 MS 设计者在决定密封 Predicate<> 时可能在想什么?
没有太多考虑,我想出了:(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
不是我不能解决问题,而是我想知道为什么我不能以某种方式解决它。