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


Функция 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

См. также

Ссылки

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

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

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

Дата

Журнал

Причина

Сентябрь 2010

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

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