F#函数参数

3

我这里有两行代码:

let stuff _ _ = MessageBox.Show("This is doing stuff") |> ignore
let stuffHandler = new EventHandler(stuff)

我刚开始学习F#,想知道如果删除变量 "stuff" 中的下划线符号,代码为什么无法编译?据我所知,下划线表示忽略某些内容,那么这里应该忽略什么呢?


提示:给定 new EventHandler(stuff),你可以推断出;p - leppie
那么你的意思是它与参数有关?它必须具有void返回类型,那么它如何使返回值为void? - Micha
@Micha 不是这样的。EventHandler 构造函数需要一个接受两个参数的函数。下划线 _ 使 stuff 成为一个有两个参数的函数 -- 每个下划线都是一个形式参数名。这只是一种惯例,用下划线来命名你不需要的东西。 - MisterMetaphor
1个回答

6

EventHandler 委托需要一个带有2个参数的函数,即发送器(sender)和事件参数(EventArgs)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接