Delegados e ParamArray - sugestões de solução alternativa?
Alguns métodos predefinidos contêm umParamArray na assinatura deles. Os delegados, no entanto, não podem conter um ParamArray em suas assinaturas.
Pergunta: Suponha que você deseja criar um mecanismo de delegação para um método específico que requer um ParamArray. Como você contornaria essa restrição?
EDIT: para deixar claro, suponha que você não possa alterar as assinaturas do método (métodos predefinidos, definidos por terceiros, seja Microsoft ou não).
EDIT2:O negócio real aqui é manter o açúcar da sintaxe, porque o código a seguir funciona, mas elimina o açúcar:
Public Delegate Sub MyDelegate(ByVal myArgs() As Object)
Public Sub PredefinedSub(ByVal ParamArray myArgs() As Object)
'...'
End Sub
Sub Test()
Dim aDelegate As New MyDelegate(AddressOf PredefinedSub)
aDelegate.Invoke(New Object() {1, 2, 3, 4})
End Sub
EDIT3: Acontece que as soluções da Skeet também são aplicáveis à criação de Eventos e Operadores que contêm um ParamArray.