如何在一行中编写以下 F# 代码(或类似代码):
let contextMenu = new ContextMenuStrip()
mainForm.ContextMenuStrip <- contextMenu
我必须声明contextMenu,因为稍后将需要它。
如何在一行中编写以下 F# 代码(或类似代码):
let contextMenu = new ContextMenuStrip()
mainForm.ContextMenuStrip <- contextMenu
我必须声明contextMenu,因为稍后将需要它。
You can set public, writeable properties as pseudo-parameters in the constructor.
let contextMenu = new ContextMenuStrip()
let form = new Form(ContextMenuStrip = contextMenu)
我不建议您将其写在一行上,因为这意味着它将是#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
我想补充一点,顺序执行表达式与非 #light 模式无关。它们只是一种通用的语言结构。
希望能帮助到你。
You could also type
let contextMenu = new ContextMenuStrip() in mainForm.ContextMenuStrip <- contextMenu
This is OCaml syntax, IIRC.
Edit: to be more clear: this is also valid (#light) F# syntax, since F# is based on OCaml.
I also don't recommend doing this, even though I like short programs.