Event.choose<'T,'U,'Del> 函数 (F#)

返回从原始事件选择消息时会激发的新事件。 选择函数将原始消息变为可选的新消息。

命名空间/模块路径: Microsoft.FSharp.Control.Event

程序集:FSharp.Core(在 FSharp.Core.dll 中)

// Signature:
Event.choose : ('T -> 'U option) -> IEvent<'Del,'T> -> IEvent<'U> (requires delegate)

// Usage:
Event.choose chooser sourceEvent

参数

  • chooser
    类型:'T -> 'U option

    用于选择并转换要传递的事件值的函数。

  • sourceEvent
    类型:IEvent<'Del,'T>

    输入事件。

返回值

一个仅当选择器返回 Some 时才会激发的事件。

备注

此函数在编译的程序集中名为 Choose。 如果从 F# 以外的 .NET 语言中访问函数,或通过反射访问成员,请使用此名称。

示例

下面的代码示例演示如何使用 Event.choose 函数。 在此示例中,当按下鼠标按钮时,该函数仅用于选择事件。 同时,该函数将类型 MouseEventArgs 的输入数据转换为更方便格式;一个包含两个整数的元组,表示当前鼠标位置。

// When the mouse button is down, the form changes color
// as the mouse pointer is moved.

let form = new Form(Text = "F# Windows Form",
                    Visible = true,
                    TopMost = true)
form.MouseMove
    |> Event.choose(fun evArgs ->
        if (evArgs.Button <> MouseButtons.None) then
            Some( evArgs.X, evArgs.Y)
        else None)

    |> Event.add ( fun (x, y) ->
        form.BackColor <- System.Drawing.Color.FromArgb(
            x, y, x ^^^ y) )

平台

Windows 8,Windows 7,Windows server 2012中,Windows server 2008 R2

版本信息

F#核心库版本

支持:2.0,4.0,可移植

请参见

参考

Control.Event 模块 (F#)

Microsoft.FSharp.Control 命名空间 (F#)