No-op lambda
J'ai un événement sur l'une de mes classes auquel je veux attacher un gestionnaire. Cependant, je n'ai pas besoin que le gestionnaire fasse quoi que ce soit, car je teste simplement le comportement de la classe avec des gestionnaires attachés ou non.
La signature de l'événement est la suivante:
public event EventHandler<EventArgs> Foo;
Donc, je veux faire quelque chose comme:
myClass.Foo += ();
Cependant, ce n'est pas une expression lambda valide. Quelle est la façon la plus succincte d'exprimer cela?
6 réponses
myClass.Foo += (s,e) => {};
Ou
myClass.Foo += delegate {};
Plutôt que d'attacher un délégué par la suite, la manière la plus courante est de l'assigner immédiatement:
public event EventHandler<EventArgs> Foo = delegate {};
Je préfère utiliser la syntaxe de la méthode anonyme plutôt qu'une expression lambda ici car elle fonctionnera avec différentes signatures différentes (certes pas celles avec des paramètres out
ou des valeurs de retour).
Attachez l'événement via un lambda comme tel:
myClass.Foo += (o, e) => {
//o is the sender and e is the EventArgs
};