Функция 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 -> 'U optionФункция выбора и преобразования значений событий для передачи.
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 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
См. также
Ссылки
Пространство имен Microsoft.FSharp.Control (F#)
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Сентябрь 2010 |
Добавлен пример кода. |
Улучшение информации. |