有没有一种方法可以在不手动声明的情况下使用运算符作为函数?
Func<bool, bool> not = x => !x;
类似于 Haskell 中的 (+)
/(-)
。在涉及条件查询构建的各种 LINQ 场景中非常方便。也许有一些我不知道的 C#(4.0+)技巧。
编辑:这里是一个样例,以澄清我的意思:
int MyWhere(Func<bool, bool, bool> cond) {}
一个通常的调用会是:MyWhere((x,y) => x && y)
一个很酷的调用方式(假设按照 Haskell 的风格)是:MyWhere((&&))
op_Addition
等,但选择正确的重载并不容易。 - CodesInChaoscall class Program/X class Program/X::op_Addition(class Program/X, class Program/X)
... - sehe