次の F# コード (または類似のコード) を 1 行で記述するにはどうすればよいでしょうか。
let contextMenu = new ContextMenuStrip()
mainForm.ContextMenuStrip <- contextMenu
後で必要になるので、contextMenuを宣言する必要があります。
次の F# コード (または類似のコード) を 1 行で記述するにはどうすればよいでしょうか。
let contextMenu = new ContextMenuStrip()
mainForm.ContextMenuStrip <- contextMenu
後で必要になるので、contextMenuを宣言する必要があります。
コンストラクターで、パブリックで書き込み可能なプロパティを疑似パラメーターとして設定できます。
let contextMenu = new ContextMenuStrip()
let form = new Form(ContextMenuStrip = contextMenu)
これを 1 行で記述することはお勧めしません。これは、#light (現在のデフォルトのモード) と非 #light 構文が混在することを意味するためです。本当に必要な場合は、;; を使用できます。そのように:
open System
open System.Windows.Forms
let mainForm = new Form()
let contextMenu = new ContextMenuStrip();; mainForm.ContextMenuStrip <- contextMenu;;
式にユニット型がある場合は、次の形式の式である順次実行式を使用できます。
expr1; expr2; expr3
例えば:
mainForm.ContextMenuStrip <- contextMenu; 5 + 6 |> ignore; mainForm.ContextMenuStrip <- null
Sequential Execution Expressions は非 #light モードとは何の関係もないことを付け加えたいと思います。それらは単なる一般的な言語構造です。
それが役に立てば幸い。
次のように入力することもできます
let contextMenu = new ContextMenuStrip() in mainForm.ContextMenuStrip <- contextMenu
これはOCaml構文、IIRCです。
編集:より明確にするために:F#はOCamlに基づいているため、これも有効な(#light)F#構文です。
また、短いプログラムが好きですが、これを行うことはお勧めしません。