Функция 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, портативное