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


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

См. также

Ссылки

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

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