为什么在 F# 中可以写 String.Join 而不能写 string.Join?

Dra*_*gno 5 f#

在 C# 中,您可以编写string.JoinString.Join。但在 F# 中你不能写 string.Join,只能写 String.Join。这是为什么?string 不是 .NET String 类的类型别名吗?

Phi*_*ter 11

在 F# 中string,根据其使用位置,是类型别名函数:

string 12 // this stringifies '12'

let f (s: string) = ... // here 'string' is a type alias for 'System.String'
Run Code Online (Sandbox Code Playgroud)

所以静态成员喜欢Join不要坐在string. 它们可以通过 获得String。如果您创建了自己的别名,那么您可以通过 访问静态成员.

在 C# 中,string和始终String指代相同的对象。System.String