2009-06-13 23 views
13

私はF#のクラスで静的メソッドを作成する方法を理解しようとしています。誰にどのようにこれを行うには考えがありますか?F#クラス内の静的メソッド

答えて

27

確かに、のstaticキーワードを接頭辞として使用してください。ここに例があります:

type Example = class 
    static member Add a b = a + b 
end 
Example.Add 1 2 

val it : int = 3 
+0

クールありがとう! – RCIX

+0

軽い構文で答えを更新できれば嬉しいです( "end"キーワードを使用する必要はありません) – knocte

6

オンラインドキュメントを忘れないでください!

Methods

この情報を持っている、と

F# Language Reference

は、言語の構文についての情報を見つけるために、一般的な良い出発点です。

+0

私のためのSOPは、最初に文書を捜して見つけられるかどうかを確認することですそこにまず助けてください。それは少なくとも1つの質問を避けました! – RCIX

6

あなたは静的クラスの静的メソッドを持っていると思った場合は、モジュールを使用し

このリンクをチェックし、特定のモジュールのセクション:

http://fsharpforfunandprofit.com/posts/organizing-functions/

はここに含まれているモジュールです2つの機能:

module MathStuff = 

    let add x y = x + y 
    let subtract x y = x - y 

舞台裏では、F# コンパイラは静的メソッドを使用して静的クラスを作成します。だから、C# 相当するものは次のようになります。

static class MathStuff 
{ 
    static public int add(int x, int y) 
    { 
     return x + y; 
    } 

    static public int subtract(int x, int y) 
    { 
     return x - y; 
    } 
} 
+0

しかし、受け入れられた答えは、クラス内の静的メンバーが可能であることを示しています。この実装の詳細は、この質問にはあまり関係していないようです。 –

+0

モジュールを使用できるときにタイプを使用する理由私はこの答えを好む – knocte

+1

"正しい"答えではないかもしれないが、それは有用なものである。 –

関連する問題