我在F#中试验WPF。 Visual Studio 2012有几个在线项目模板:
我从第一个选项开始,但后来切换到纯f#解决方案。 还有一个我无法解决的问题。
我再也看不到VSF输出窗口中的printfn结果了。虽然如果我设置断点,我会看到代码已经到达。
以下是一个示例:
module MainApp
open System
open System.Windows
open System.Windows.Controls
open FSharpx
type MainWindow = XAML<"MainWindow.xaml">
let loadWindow() =
let window = MainWindow()
printfn "%s" "Test"
window.Root
[<STAThread>]
(new Application()).Run(loadWindow()) |> ignore
这是由模板创建的App.fs,只需添加一个 - printfn。输出 - 没有。
我想知道是什么让它与众不同。有什么想法吗?
答案 0 :(得分:3)
您可以使用System.Diagnostics.Debug.WriteLine写入VS Output窗口。必须定义TRACE常量,默认情况下在调试中。
printfn写入stdout,它是控制台应用程序中的控制台窗口。
答案 1 :(得分:2)
或者,您可以将项目设置为控制台应用程序,因此您将拥有一个控制台窗口以及WPF窗口,并且您可以照常使用printfn。