F# 为什么在VS2010对象浏览器中F中的语句“printfn”的名称不同?

F# 为什么在VS2010对象浏览器中F中的语句“printfn”的名称不同?,f#,function-call,F#,Function Call,当我调用F库和.NET库的函数时,我知道它们之间的区别。 但是当我在VS2010对象浏览器中看到printfn语句时,我只看到了公共静态T PrintFormatLine。。。格式化而不是打印fn 为什么F库中的printfn语句在VS2010对象浏览器中具有不同的名称 如果F库没有文档,因为VS 2010对象浏览器中的名称完全不同,我如何调用F库中的函数?F核心库中的printfn函数用一个特殊属性CompiledName进行注释,该属性以编译形式指定函数名: [<CompiledNam

当我调用F库和.NET库的函数时,我知道它们之间的区别。 但是当我在VS2010对象浏览器中看到printfn语句时,我只看到了公共静态T PrintFormatLine。。。格式化而不是打印fn

为什么F库中的printfn语句在VS2010对象浏览器中具有不同的名称

如果F库没有文档,因为VS 2010对象浏览器中的名称完全不同,我如何调用F库中的函数?

F核心库中的printfn函数用一个特殊属性CompiledName进行注释,该属性以编译形式指定函数名:

[<CompiledName("PrintFormatLine")>]
let printfn fp = ...
这有什么用?我认为其动机是FSharp.Core.dll库应该遵循通常的.NET命名准则。但是,F命名准则有点不同,允许使用小写名称等,因此该属性用于使库看起来更像普通的.NET库

我不认为这是F的用户自己会使用的东西。如果您正在编写将从C使用的代码,请以C友好的风格编写,如果您正在编写将从F使用的代码,请遵循F命名准则。

F核心库中的printfn函数使用一个特殊属性CompiledName进行注释,该属性以编译形式指定函数的名称:

[<CompiledName("PrintFormatLine")>]
let printfn fp = ...
这有什么用?我认为其动机是FSharp.Core.dll库应该遵循通常的.NET命名准则。但是,F命名准则有点不同,允许使用小写名称等,因此该属性用于使库看起来更像普通的.NET库


我不认为这是F的用户自己会使用的东西。如果您正在编写将从C中使用的代码,请以C友好的风格编写;如果您正在编写将从F中使用的代码,请遵循F命名准则。

请注意,有些文档,请参阅,例如,还请注意,您实际上不希望从C调用F库中的函数。它们使用各种F特定类型,这些类型很难从C中使用。特别是,从C调用printfn几乎是不可能的!请注意,有一些文档,请参阅,例如,还请注意,您实际上不希望从C调用F库中的函数。它们使用各种F特定类型,这些类型很难从C中使用。特别是,从C调用printfn几乎是不可能的!这意味着.Net视图显示的是.Net常规名称PascalCase,而不是模块成员的F常规名称Case,有时缩写。但是,很少有人从其他语言调用FSharp.Core的成员。F文档就在这里:@dagelee源代码也可用。谢谢@TomasPetricek。我知道F库中的printfn语句将.NET库中的PrintFormatLine语句包装起来。我的问题是:如果没有F库的文档,我怎么知道函数名printfn?@dagelee:文档称它为printfn:这意味着.Net视图显示的是.Net常规名称PascalCase,而不是模块成员的F常规名称camelCase,有时缩写。但是,很少有人从其他语言调用FSharp.Core的成员。F文档就在这里:@dagelee源代码也可用。谢谢@TomasPetricek。我知道F库中的printfn语句将.NET库中的PrintFormatLine语句包装起来。我的问题是:如果没有F库的文档,我如何知道函数名printfn?@dagelee:文档称之为printfn: