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


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

Возвращает новое событие, которое активирует вторую и последующие активации входного события.Для N-ной активации входного события передаются аргументы от активаций N-1 и N в виде пары.Аргумент, переданный активации N-1, содержится в скрытом внутреннем состоянии до N-ной активации.

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

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

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

// Usage:
Event.pairwise sourceEvent

Параметры

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

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

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

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

Заметки

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

Пример

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

open System.Windows.Forms
open System.Drawing

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

let graphics = BufferedGraphicsManager.Current.Allocate(form.CreateGraphics(), 
                                new Rectangle( 0, 0, form.Width, form.Height ))
let whitePen = new Pen(Color.White)

form.MouseClick
    |> Event.pairwise
    |> Event.add ( fun (evArgs1, evArgs2) ->
        graphics.Graphics.DrawLine(whitePen, evArgs1.X, evArgs1.Y, evArgs2.X, evArgs2.Y)
        form.Refresh())

form.Paint
    |> Event.add(fun evArgs -> graphics.Render(evArgs.Graphics))

Платформы

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

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

Основной версии библиотеки F#

Поддерживается в: 2.0, 4.0, портативное

См. также

Ссылки

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

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