1

F#ライブラリと.NETライブラリの関数を呼び出したとき、それらの違いを知っていました。しかし、VS 2010オブジェクトブラウザで「printfn」というステートメントを見たとき、「printfn」ではなく「public static T PrintFormatLine(... format)」しか見えませんでした。

F#ライブラリのステートメント「printfn」がVS2010オブジェクトブラウザで異なる名前になっているのはなぜですか?

VS 2010オブジェクトブラウザーの名前が完全に異なるため、F#ライブラリのドキュメントがない場合、F#ライブラリの関数を呼び出すにはどうすればよいですか?

4

1 に答える 1

6

printfnF#コアライブラリの関数には、コンパイルされた形式で関数の名前を指定する特別な属性が付けられていCompiledNameます。

[<CompiledName("PrintFormatLine")>]
let printfn fp = ...

これは何のために良いですか?FSharp.Core.dllその動機は、ライブラリが通常の.NET命名ガイドラインに従う必要があることだと思います。ただし、F#の命名ガイドラインは少し異なります(小文字の名前も使用できますなど)。そのため、この属性を使用して、ライブラリを通常の.NETライブラリのように見せます。

これはF#のユーザーが自分で使うものではないと思います。C#から使用されるコードを記述している場合は、C#に適したスタイルで記述し、F#から使用されるコードを記述している場合は、F#の命名ガイドラインに従ってください。

于 2011-09-23T01:39:34.013 に答える