Delegados y ParamArray: ¿sugerencias de solución?
Algunos métodos predefinidos contienen unParamArray en su firma Los delegados, sin embargo, no pueden contener un ParamArray en su firma.
Pregunta: Suponga que desea crear un mecanismo de delegación para un método específico que requiere un ParamArray. ¿Cómo evitarías esta restricción?
EDITAR: solo para dejar en claro, suponga que no puede cambiar las firmas de los métodos ellos mismos (métodos predefinidos, definidos por terceros, ya sea Microsoft o no).
EDIT2:El verdadero negocio aquí es mantener el azúcar de sintaxis, porque el siguiente código funciona, pero elimina el azú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
EDITAR3: Resulta que las soluciones de Skeet son aplicables también para crear Eventos y Operadores que contienen un ParamArray.