gpt4 book ai didi

作为函数的 C# 运算符

转载 作者:太空狗 更新时间:2023-10-29 18:20:37 32 4
gpt4 key购买 nike

有没有一种方法可以将运算符用作函数而无需手动声明它们?

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((&&))

最佳答案

没有。

您可以找到可以重载的运算符的定义(VS 中的 F12),并且存在一个

 // struct Double
public static bool operator ==(double left, double right);

但是没有办法调用Double.operator==(a, b)

框架确实为这种特殊情况提供了 a.Equals(b),但是没有 a.Add(b)

关于作为函数的 C# 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8342857/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com