Event.Scan <'U, t,'Del > Funkcja (F#)
Zwraca nowe zdarzenie, która składa się z wyników stosowania danej funkcji kumulowanych do kolejnych wartości Wyzwolone zdarzenie wejściowe.
Ścieżka obszaru nazw/modułu: Microsoft.FSharp.Control.Event
Zestaw: FSharp.Core (w FSharp.Core.dll)
// Signature:
Event.scan : ('U -> 'T -> 'U) -> 'U -> IEvent<'Del,'T> -> IEvent<'U> (requires delegate)
// Usage:
Event.scan collector state sourceEvent
Parametry
collector
Typ:'U -> 'T -> 'UFunkcja aktualizacji stanu wartości każdego zdarzenia.
state
Typ:'UStan początkowy.
sourceEvent
Typ: IEvent<'Del,'T>Zdarzenie wejściowe.
Wartość zwracana
Zdarzenie pożary na Państwo zaktualizowane wartości.
Uwagi
Element stanu wewnętrznego rekordy bieżącej wartości parametru Państwo.Stan wewnętrzny nie jest zablokowana podczas wykonywania funkcji akumulacji tak opieki powinny być podjęte, że dane wejściowe IEvent nie wyzwolone przez wiele wątków jednocześnie.
Ta funkcja o nazwie Scan w skompilowane zestawy.Jeżeli języka, niż F# lub przez odbicie, uzyskują dostęp do funkcji, należy użyć tej nazwy.
Przykład
Poniższy przykład kodu pokazuje, jak używać Event.scan funkcji.Ten kod implementuje liczników kliknij proste.Przy każdym kliknięciu w formularzu, Państwo przyrostem 1 i tekstu w formularzu zostanie zmieniona nowego stanu.
// This code implements a simple click counter. Every time
// the user clicks the form, the state increments by 1
// and the form's text is changed to display the new state.
open System.Windows.Forms
open System.Drawing
open Microsoft.FSharp.Core
let form = new Form(Text = "F# Windows Form",
Visible = true,
TopMost = true)
let initialState = 0
form.Click
|> Event.scan (fun state _ -> state + 1) initialState
|> Event.add (fun state -> form.Text <- state.ToString() )
Platformy
Windows 8, Windows 7, Windows Server 2012 Windows Server 2008 R2
Informacje o wersji
F# Core wersji biblioteki
Obsługiwane: 2.0, 4.0, przenośne