que je dois faire à travers des actions comme ceci:comment convertir directement l'expression lambda en objet?
Action action =() => { ..// };
object o = action;
une façon de le faire:
object o =() =>{}; //this doesn't compile
que je dois faire à travers des actions comme ceci:comment convertir directement l'expression lambda en objet?
Action action =() => { ..// };
object o = action;
une façon de le faire:
object o =() =>{}; //this doesn't compile
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 ...
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.
Une autre option, pas si différent:
object o = new Action(() => { });
En fait, j'aime mieux celui-ci. J'imagine mentalement l'autre solution en tant que constructeur. Pourrait aussi bien le rendre explicite. – Spike
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
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
@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