我目前正在通過「真實世界函數式編程」的方式工作。我正在嘗試使用Windows窗體獲得示例1.12工作,這是一個「hello world」程序。這是代碼: - 「開始在單個線程第二個消息循環是無效操作」 -在F中使用Windows窗體的面向對象的「Hello world」#
open System.Drawing;;
open System.Windows.Forms;;
type HelloWindow() =
let frm = new Form(Width = 400, Height = 140)
let fnt = new Font("Times New Roman", 28.0f)
let lbl = new Label(Dock = DockStyle.Fill, Font = fnt,
TextAlign = ContentAlignment.MiddleCenter)
do frm.Controls.Add(lbl)
member x.SayHello(name) =
let msg = "Hello" + name + "!"
lbl.Text <- msg
member x.Run() =
Application.Run(frm);;
let hello = new HelloWindow();;
hello.SayHello("you");;
hello.Run();;
不幸的是,這將引發一個錯誤所以顯然有一個窗口打開,並沒有終止,這是令人困惑的程序。我看不出如何解決這個錯誤,任何人都可以幫我解決問題嗎?
我也曾嘗試輸入最後的代碼塊爲: -
let hello = new HelloWindow()
hello.SayHello("you")
hello.Run();;
但是,這並不能幫助。代碼運行良好,但沒有結果,最後一行被註釋掉。
我懷疑從'讓hello'需縮進,行 - 儘管這可能只是複製 –
是。你是對的,會編輯。 –
這不是解決你的問題,但你不需要使用;;無處不在 –