Lambdas in attesa
-
12-11-2019 - |
Domanda
Valutazioni dinamiche in un ascoltatore chiave
public class KeyUpper {
Func<Key, bool> _evaluate;
public void RegisterEvaluator(Func<Key, bool> evaluate){
_evaluate = evaluate;
}
public void KeyUp(object sender, KeyEventArgs e){
if (_evaluate(e.KeyCode))
SomeResponse();
}
public void SomeResponse(){
// ...
}
}
Questo lambda dovrebbe attendere su ogni riga
keyUpper.RegisterEvaluator(key =>
{
if (key == Key.A)
if (key == Key.W)
if (key == Key.A)
return true;
}
);
- IE il codice client fornirebbe una serie di valutazioni sullo stesso
key
argomento con l'aspettativa che ogni linea di valutazione sarebbe attenta in modo che Someresponse () venga invocato dopo una sequenza di eventi keyup di 1: a 2: w 3: - Ovviamente al momento non accadrà mai perché il metodo viene eseguito fino alla fine e
key == Key.W
non sarà mai vero - Potrebbe non essere possibile, ma esiste un modo per far ritornare automaticamente il metodo dalla riga successiva se si valuta a false ma restituiti fino a quando quella linea non valuta il vero, seguendolo fino alla riga successivamente, e al linea dopo fino alla fine del metodo?
- IE potrebbe esserci un modo semplice per fornire espressioni lambda attenti di questo tipo?
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow