Freigeben über


Event.choose<'T,'U,'Del>-Funktion (F#)

Gibt ein neues Ereignis zurück, das bei einer Auswahl von Meldungen aus dem ursprünglichen Ereignis ausgelöst wird.Die Auswahlfunktion übernimmt eine ursprüngliche Meldung in eine optionale neue Meldung.

Namespace/Modulpfad: Microsoft.FSharp.Control.Event

Assembly: FSharp.Core (in FSharp.Core.dll)

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

// Usage:
Event.choose chooser sourceEvent

Parameter

  • chooser
    Typ: 'T -> 'Uoption

    Die Funktion, mit der zu übergebende Ereigniswerte ausgewählt und transformiert werden.

  • sourceEvent
    Typ: IEvent<'Del,'T>

    Das Eingabeereignis.

Rückgabewert

Ein Ereignis, das nur ausgelöst wird, wenn von der Auswahl Some zurückgegeben wird.

Hinweise

Der Name dieser Funktion in kompilierten Assemblys lautet Choose.Verwenden Sie diesen Namen, wenn Sie in einer anderen .NET-Sprache als F# oder durch Reflektion auf die Funktion zugreifen.

Beispiel

Im folgenden Codebeispiel wird die Verwendung der Event.choose-Funktion veranschaulicht.In diesem Beispiel werden mit der Funktion nur dann Ereignisse ausgewählt, wenn die Maustaste gedrückt wird.Gleichzeitig transformiert die Funktion die Eingabedaten vom Typ MouseEventArgs in ein bequemeres Format, ein Tupel von zwei ganzen Zahlen, die die aktuelle Mausposition darstellen.

// 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) )

Plattformen

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Versionsinformationen

F#-Kern-Bibliotheks-Versionen

Unterstützt in: 2,0, 4,0, portablen

Siehe auch

Referenz

Control.Event-Modul (F#)

Microsoft.FSharp.Control-Namespace (F#)