web-dev-qa-db-fra.com

Déclaration de déléguée en ligne (C #)

Je ne peux pas obtenir ce qui suit pour compiler:

var x = new Action(delegate void(){});

Quelqu'un peut-il souligner ce que je fais mal?

33
maxp

Vous ne spécifiez pas de type de retour lors de l'utilisation de méthodes anonymes. Cela fonctionnerait:

var x = new Action(delegate(){});

Quelques alternatives:

Action x = () => {}; // Assuming C# 3 or higher
Action x = delegate {};
Action x = delegate() {};
var x = (Action) (delegate{});
60
Jon Skeet

Pourquoi pas la notation Lambda?

Action myAction= (Action)(()=>
{
});
18
Zotta