2016-10-02 19 views
2

EntryPointの目的は何ですか? どのように変数をargvに渡して、デフォルトの十分な引数を受け取るのではなく、 "Hello変数"を出力できるようにしますか?F#メインargvとif文の混乱

[<EntryPoint>] 
let main argv = 
    if argv.Length >= 1 
     then printfn "Hello %s" argv.[0]; 0 
     else printfn "Not enough arguments"; 1 
+1

'argv'は、コマンドライン引数が含まれています'MyProgram.exe variable' – Lee

答えて

6

[EntryPointAttribute]は、あなたのアプリケーションを実行するときに呼び出される最初の関数である:

は、関数にこの属性を追加することはアプリケーションのエントリポイント であることを示します。 EXEに対してこれが指定されていない場合、 の最後のファイルのモジュールバインディングに暗黙の初期化が行われ、コンパイルシーケンスがエントリポイントとして使用されます。

デバッグ中に値を渡すには、(Visual Studioを使用していると仮定して)プロジェクトプロパティでいくつかの引数を設定できます。

後藤プロジェクトメニュー、および左側からデバッグページを選択して、あなたがそこにあなたの引数を入力することができ、その後MyProjectのプロパティ...を選択:

Project Properties, Debug

の場合Visual Studioを使用していない場合は、Visual Studioを実行したり、ドキュメントを参照したり、質問を更新する方法が必要です。

デバッガの外で実行している場合は、CMDウィンドウを必要として、ちょうどそれらを渡す:あなたがそれらを提供するので、あなたは、例えば、プログラムを実行すると

> MyProject.exe /Arg1 
+1

ええ、私はVisual Studioを使用していました。 それは私をイライラしていました:) – Artemis

+0

私は本当にこの属性の利点は何か分かりません。 'main'の後に関数があれば、どうすればそれらを使うことさえできますか? – asibahi

+0

@asibahiプログラムは、コマンドラインから実行するときにどこか*起動する必要があります。 'main'メソッドを持つ多くのクラスがあります。他の関数については、あなたの入力関数から呼び出すだけです。 –