Sobrecargar funcion que tenga ParamArray

25/07/2006 - 23:40 por Kevin Guisbert S. | Informe spam
Hola a todos, bueno viendo un codigo que tenia que implementar me tope con
que la clase tenia una funcion que como parametros aceptaba solo un
Paramarray, esto es un lio porque no puedo sobrecargar la funcion (y tampoco
borrarla, ya esta siendo usada)

EJ:
Public function Test(byval ParamArray Datos() as boolean) as integer
...
End Function

ahora cuando intento sobrecargar

Public function Test(byval ID as integer, byval ParamArray Datos() as
boolean) as integer
...
End Function

Ahi bien, pero el problema salta al realizar la llamada a la funcion si le
paso los datos segun la estructura de la funcion sobrecargada entonces en
tiempo de ejecucion intenta siempre mandarme a la primera funcion y si los
datos no son boolean(ya que mi otro dato es integer) me lanza una excepcion.

Alguien me podria ayudar a como puedo sobrecargar esta funcion? intente
mandar con parentesis y nada... hay alguna forma de especificar que datos
pertenecen al paramarray o es que me tengo que resignar a meter mis otros
datos dentro del paramarray (tendre que modificar la funcion original para
que se comporte de cierta forma con cierto tipo de datos :()

Muchas gracias de antemano

Saludos

Kev

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
26/07/2006 - 00:20 | Informe spam
Ahi bien, pero el problema salta al realizar la llamada a la funcion
si le paso los datos segun la estructura de la funcion sobrecargada
entonces en tiempo de ejecucion intenta siempre mandarme a la primera
funcion y si los datos no son boolean(ya que mi otro dato es integer)
me lanza una excepcion.



No puede ser que en tiempo de ejecucion te mande a la otra sobrecarga porque
a cual llamar se resuelve durante la compilacion a menos que estes usando
reflection o late-binding. Si es el ultimo caso probablemente el error es
que no se le esta pasando ni un entero ni un boolean y falla a intentar
convertir el parametro a alguno de los dos tipos.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#2 Kevin Guisbert S.
26/07/2006 - 22:32 | Informe spam
Hola gracias por responder, bueno te comento que uso early binding, por lo
cual el IDE de VS.NET 2005 me muestra que la llamada a la funcion
sobrecargada esta muy bien(osea en el intellisense me muestra que los
parametros a usar son los que yo quiero) pero al momento de correr la
aplicacion no pasa esto, me salta un error porque piensa que el primer
parametro es parte de ParamArray y que es necesario realizar una conversion
explicita a boolean, es muy raro este error ya que en tiempo de diseño no me
da ningun tipo de error al contrario me indica que todo en teoria saldra
supuestamente bien.

Alguna sugerencia?

Gracias

P.D. Casi me olvido, por si acaso tampoco estoy usando Reflection

"Eduardo A. Morcillo [MS MVP VB]" escribió:

> Ahi bien, pero el problema salta al realizar la llamada a la funcion
> si le paso los datos segun la estructura de la funcion sobrecargada
> entonces en tiempo de ejecucion intenta siempre mandarme a la primera
> funcion y si los datos no son boolean(ya que mi otro dato es integer)
> me lanza una excepcion.

No puede ser que en tiempo de ejecucion te mande a la otra sobrecarga porque
a cual llamar se resuelve durante la compilacion a menos que estes usando
reflection o late-binding. Si es el ultimo caso probablemente el error es
que no se le esta pasando ni un entero ni un boolean y falla a intentar
convertir el parametro a alguno de los dos tipos.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C



Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
26/07/2006 - 23:21 | Informe spam
¿Puedes poner el codigo? Yo probe y funciono correctamente.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#4 Carlos Gómez
27/07/2006 - 23:40 | Informe spam
A mi tambien me ha ocurrido lo mismo, pero -jeje- no siempre. Parece que al
compilador a veces le 'patina' el cerebro y empieza a perder aceite. Al
final, decidi evitar la sobrecarga con paramArray de por medio.

Mas cosas raras:
Formularios MDI que les asignas un icono (en tiempo de diseño), pero cuando
se cargan muestran los cuadritos tipicos que trae por defecto. Minimizas,
maximizas y por fin los muestra (ojo, no siempre: algunas veces muestran el
que le has asignado desde el principio)

Retorno de parametros de T-SQL desde SqlServer 2005 Express: la mayoria de
las veces los captura, aunque no siempre, y te aseguro que el T-SQL se ha
ejecutado correctamente (aparece la insercion en la base de datos, pero no
devuelve el @@Identity)

Pero eso si, me parecio algo de lo mas raro
Desde Aguadulce - España
Carlos Gomez
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida