Comment puis-je mettre en œuvre ce délégué?
-
22-09-2019 - |
Question
doesnt d'action semblent soutenir chaîne params [] comme param donc j'écrit
delegate void WriteFn(string s, params string[] ls);
i ont cette fonction
void blah(WriteFn Write, string fmt, params string[] a)
Maintenant, je voudrais écrire une fonction, mais je ne peux pas sembler figurer la syntaxe dehors. Ce quelque chose comme
{
var sw = ...
blah(new WriteFn(s, ls) { sw.write(s, ls); }, fmt, a);
//not what i want to do but close enough. remember sw isnt a param in WriteFn
Comment puis-je écrire cela?
La solution
Votre question est pas claire. Est-ce que l'on suppose de deviner que sw
est un StreamWriter
? Si oui, il semble que cela fonctionnerait:
blah((s, ls) => sw.Write(s, ls), fmt, a);
Autres conseils
Je pense que vous ne pouvez pas le faire parce que les listes d'arguments variables est pas compatible avec les méthodes anonymes, selon MSDN.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow