2010-03-11 6 views

Répondre

7

Qu'en est-:

object o = (Action) (() => { ... }); 

Bien que je ne sais pas vraiment pourquoi vous Je veux le stocker comme un objet en premier lieu ...

+0

Je suis mettre en œuvre une file d'attente de messages pour un fil, la commande peut être placé dans la file d'exécution. – Benny

+0

Salut, je suis un peu nouveau ici. Quelle est l'étiquette quand quelqu'un publie une réponse identique pendant que j'en écris un. Devrais-je simplement le supprimer? Il semble que ce soit superflu maintenant. – Spike

+0

@Benny - Si vous le pouvez, pensez à utiliser une structure générique comme 'Queue ' de sorte que les expressions lambda n'aient pas besoin d'être castées en tant qu'objets. – Greg

8

Weeeell, delega tes sont des objets, mais les lambdas ne le sont pas.

Cette object o = (Action)(() => {}); va compiler, mais je ne sais pas si ça a l'air mieux.

2

Une autre option, pas si différent:

object o = new Action(() => { }); 
+0

En fait, j'aime mieux celui-ci. J'imagine mentalement l'autre solution en tant que constructeur. Pourrait aussi bien le rendre explicite. – Spike

Questions connexes