Condividi tramite


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

Restituisce un nuovo evento che ascolta l'evento originale e attiva il prima evento risultante se l'applicazione del predicato agli argomenti dell'evento ha restituito true e il secondo evento se ha restituito false.

Percorso di spazio dei nomi/modulo: 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

Parametri

  • predicate
    Tipo: 'T -> bool

    Funzione per determinare quale evento di output attivare.

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

    Evento di input.

Valore restituito

Tupla di eventi. Il primo elemento viene attivato se il predicato restituisce true, il secondo se restituisce false.

Note

Questa funzione è denominata Partition negli assembly compilati. Utilizzare questo nome se si accede alla funzione da un linguaggio diverso da F# o tramite reflection.

Esempio

Nel codice riportato di seguito viene illustrato come utilizzare la funzione Event.partition per dividere un evento in due eventi, ognuno con il proprio codice per la gestione degli eventi.

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

Piattaforme

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

Informazioni sulla versione

Versioni della libreria di base F#

Supportato in: 2,0, 4,0, portabile

Vedere anche

Riferimenti

Modulo Control.Event (F#)

Spazio dei nomi Microsoft.FSharp.Control (F#)