Функция Event.choose<'T,'U,'Del> (F#)
Возвращает новое событие, которое инициируется при выборе сообщений из первоначального события.Функция выбора переводит первоначальное сообщение в дополнительное новое сообщение.
Пространство имен/путь к модулю: Microsoft.FSharp.Control.Event
Сборка: FSharp.Core (в FSharp.Core.dll)
// Signature:
Event.choose : ('T -> 'U option) -> IEvent<'Del,'T> -> IEvent<'U> (requires delegate)
// Usage:
Event.choose chooser sourceEvent
Параметры
chooser
Тип: 'T -> 'UoptionФункция выбора и преобразования значений событий для передачи.
sourceEvent
Тип: IEvent<'Del,'T>Входное событие.
Возвращаемое значение
Событие, которое вызывается, только если от функции выбора получен результат Some.
Заметки
В скомпилированных сборках имя этой функции — Choose.При обращении к функции из языка платформы .NET Framework, отличного от F#, или посредством отражения следует использовать это имя.
Пример
В следующем примере кода показано, как использовать функцию Event.choose.В этом примере функция используется для выбора только тех событий, когда кнопка мыши нажата.В то же время эта функция преобразует входные данные типа MouseEventArgs в более удобный формат — кортеж из двух целых чисел, представляющий текущее положение мыши.
// When the mouse button is down, the form changes color
// as the mouse pointer is moved.
let form = new Form(Text = "F# Windows Form",
Visible = true,
TopMost = true)
form.MouseMove
|> Event.choose(fun evArgs ->
if (evArgs.Button <> MouseButtons.None) then
Some( evArgs.X, evArgs.Y)
else None)
|> Event.add ( fun (x, y) ->
form.BackColor <- System.Drawing.Color.FromArgb(
x, y, x ^^^ y) )
Платформы
Windows 8, Windows 7, Windows Server 2012, Windows 2008 Server R2
Сведения о версии
Основной версии библиотеки F#
Поддерживается в: 2.0, 4.0, портативное