Freigeben über


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

Gibt ein neues Ereignis zurück, das auf das ursprüngliche Ereignis lauscht und das erste resultierende Ereignis auslöst, wenn die Anwendung des Prädikats auf die Ereignisargumente true zurückgegeben hat, und das zweite Ereignis auslöst, wenn false zurückgegeben wurde.

Namespace/Modulpfad: Microsoft.FSharp.Control.Event

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

// Signature:
Event.partition : ('T -> bool) -> IEvent<'Del,'T> -> IEvent<'T> * IEvent<'T> (requires delegate)

// Usage:
Event.partition predicate sourceEvent

Parameter

  • predicate
    Typ: 'T ->bool

    Die Funktion, die bestimmt, welches Ausgabeereignis ausgelöst werden soll.

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

    Das Eingabeereignis.

Rückgabewert

Ein Tupel von Ereignissen.Das Erste wird ausgelöst, wenn das Prädikat true ergibt, das Zweite, wenn das Prädikat false ergibt.

Hinweise

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

Beispiel

Im folgenden Code wird veranschaulicht, wie mit der Event.partition-Funktion ein Ereignis in zwei Ereignisse mit jeweils eigenem Ereignisbehandlungscode geteilt wird.

open System.Windows.Forms
open System.Drawing

let form = new Form(Text = "F# Windows Form",
                    Visible = true,
                    TopMost = true)

let (event1, event2) =
    form.MouseMove 
    |> Event.partition (fun evArgs -> evArgs.X > 100)

event1 |> Event.add ( fun evArgs ->
    form.BackColor <- System.Drawing.Color.FromArgb(
        evArgs.X, evArgs.Y, evArgs.X ^^^ evArgs.Y))
event2 |> Event.add ( fun evArgs ->
    form.BackColor <- System.Drawing.Color.FromArgb(
        evArgs.Y, evArgs.X, evArgs.Y ^^^ evArgs.X))

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