Partager via


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

Retourne un nouvel événement qui écoute l'événement d'origine et déclenche le premier événement qui en résulte si l'application du prédicat aux arguments d'événement a retourné la valeur true, et le deuxième événement si elle a retourné la valeur false.

Espace de noms/Chemin du module : 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

Paramètres

  • predicate
    Type : 'T ->bool

    Fonction permettant de déterminer l'événement de sortie à déclencher.

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

    Événement d'entrée.

Valeur de retour

Tuple d'événements.Le premier est déclenché lorsque le prédicat prend la valeur true et le second lorsque le prédicat prend la valeur false.

Notes

Cette fonction se nomme Partition dans les assemblys compilés.Si vous accédez à la fonction à partir d'un langage autre que F# ou par réflexion, utilisez ce nom.

Exemple

Le code suivant montre comment utiliser la fonction Event.partition pour diviser un événement en deux événements, chacun avec son propre code de gestion des événements.

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

Plateformes

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

Informations de version

Versions de bibliothèque principale F#

Prise en charge dans : 2,0, 4,0, portables

Voir aussi

Référence

Control.Event, module (F#)

Microsoft.FSharp.Control, espace de noms (F#)