Поделиться через


Функция Event.partition<'T,'Del> (F#)

Возвращает новое событие, ожидающее первоначальное событие и вызывающее первое результирующее событие, если применение предиката к аргументам события возвращает значение true, и второе событие, если возвращается значение false.

Пространство имен/путь к модулю:Microsoft.FSharp.Control.Event

Сборка: FSharp.Core (в FSharp.Core.dll)

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

// Usage:
Event.partition predicate sourceEvent

Параметры

  • predicate
    Тип: 'T -> bool

    Функция, предназначенная для определения выходного события, которое следует инициировать.

  • sourceEvent
    Тип: IEvent<'Del,'T>

    Входное событие.

Возвращаемое значение

Кортеж событий. Первое событие активируется, когда предикат возвращает значение true, а второе — при возврате предикатом значения false.

Заметки

В скомпилированных сборках имя этой функции — Partition. При обращении к функции из языка, отличного от F#, или посредством отражения следует использовать это имя.

Пример

В следующем коде показано, как использовать функция Event.partition для разделения событие в два события, каждый с собственным кодом обработки событий.

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

Платформы

Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows XP с пакетом обновления 3 (SP3), Windows XP x64 с пакетом обновления 2 (SP2), Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2), Windows Server 2003 с пакетом обновления 2 (SP2)

Сведения о версии

Среда выполнения F#

Поддерживается в версиях 2.0, 4.0

Silverlight

Поддерживается в версии 3

См. также

Ссылки

Модуль Control.Event (F#)

Пространство имен Microsoft.FSharp.Control (F#)

Журнал изменений

Дата

Журнал

Причина

Сентябрь 2010

Добавлен пример кода.

Улучшение информации.