我想从Predicate
我没有想太多想法:(a)简化了他们的测试,只是时间与成本之间的关系(b)"没有好处"可能来自Predicate <>
你怎么看?
更新:在初始化阶段,有n个谓词动态添加到Predicates列表中.每个都是互斥的(如果添加了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
它不是我无法解决问题,它我想知道为什么我无法以某种方式解决它.
Predicate
是委托类型.你永远不能从代表派生出来.
说实话,这听起来并不像继承在这里真正适合 - 只需编写一个返回原始逆的方法.这很简单:
public static PredicateInvert (Predicate original) { return t => !original(t); }