Есть ли способ использовать операторы как функции, не объявляя их вручную?
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((&&))