Como faço para implementar este delegado?
-
22-09-2019 - |
Pergunta
Ação não parecem apoio de parâmetros de seqüência de caracteres[] como uma param por isso escrevi
delegate void WriteFn(string s, params string[] ls);
eu tenho esta função
void blah(WriteFn Write, string fmt, params string[] a)
Agora eu gostaria de escrever uma função, mas eu não consigo entender a sintaxe de fora.É algo como
{
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
Como posso escrever isso?
Solução
Sua pergunta não está clara. Devemos adivinhar que sw
é um StreamWriter
? Nesse caso, parece que isso funcionaria:
blah((s, ls) => sw.Write(s, ls), fmt, a);
Outras dicas
Eu acho que você não pode fazer isso porque listas de argumento variável é NÃO compatível com métodos anônimos, de acordo com MSDN.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow