为什么F#不为运营商提供自定义重载==?

Sof*_*mes 7 .net f# equals operator-overloading

F#中的歧视联合和其他原始类型默认使用结构相等,并为.Equals方法提供生成的覆盖.F#等号运算符明显不同于C#,因为它甚至对于引用类型使用.Equals方法,但是当使用来自C#的F#区分联合时,使用默认运算符== for object,它检查引用相等而不是结构平等.

为什么F#不为有区别的联合类型生成自定义运算符==,以便==在其他.NET语言中使用时给出预期的行为?

Jon*_*rop 1

此类行为是由您正在使用的语言定义的,而不是由您正在使用的类型的原始语言定义的。