f# – 从其他.NET语言重载运算符

F#如何处理来自其他.NET语言的重载运算符.

例如,我正在使用一个库,其中!=已被重载以返回对象本身的新实例.

例如.

Object newObject = a != b;

当我使用<>时对F#中同一对象的运算符返回bool类型的值.这是什么原因?不应该使用重载运算符吗?如果没有,我如何将这些运算符重载扩展到F#?

最佳答案 大多数重载的运算符(,*等)都可以从F#中调用而不会出现问题.但是,F#的相等和比较运算符不会超载(F#使用结构相等),因此您需要手动调用自定义运算符(例如MyType.(<>)).

点赞