gpt4 book ai didi

wpf - F# WPF 事件 : "Block following this ' let' is unfinished. 需要一个表达式”

转载 作者:行者123 更新时间:2023-12-02 04:44:43 26 4
gpt4 key购买 nike

这让我抓狂。我在找here在 Microsoft 的函数示例中。我看不出我做错了什么。

因此,我尝试将 F# 与 WPF 一起使用,我找到了一个适用于它的在线项目模板。 Here it is .我正要开始。遗憾的是,设计器无法像在 C# 中那样通过双击元素在 F# 代码中生成事件。但是,好吧,无论如何我都可以设置 Click 的功能。我决定全部手动完成。

这是我的错误尝试:

module MainApp

open System
open System.Windows
open System.Windows.Controls
open FSharpx

let mutable doc = ""

type MainWindow = XAML<"MainWindow.xaml">

let loadWindow() =
let window = MainWindow()

// Your awesome code code here and you have strongly typed access to the XAML via "window"

window.Root

let make (sender:Object, e:RoutedEventArgs) =
doc<- doc +"<?xml version=\"1.0\" standalone=\"no\"?>"
0


[<STAThread>]
(new Application()).Run(loadWindow()) |> ignore

无论如何,它不喜欢带有 let make 的那一行。它给了我这个错误:

Block following this 'let' is unfinished. Expect an expression

然而,很明显我在 MSDN 上读到了

  The compiler uses the final expression in a function body to determine the return value and type

那么,它有返回,怎么是未完成的表达式呢?

最佳答案

您应该从 loadWindow 返回 window.Root。现在 loadWindow 中的最后一段代码是 make 函数的声明,这是无效的。请记住,缩进决定了 F# 中的范围。

如果你想添加一个新函数make,但是loadWindow的主体基本上是空的,你需要正确对齐缩进:

let loadWindow() =
let window = MainWindow()

// Your awesome code code here and you have strongly typed access to the XAML via "window"

window.Root

let make (sender:Object, e:RoutedEventArgs) =
doc<- doc +"<?xml version=\"1.0\" standalone=\"no\"?>"
0

关于wpf - F# WPF 事件 : "Block following this ' let' is unfinished. 需要一个表达式”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20012027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com