Foros del Web » Programación para mayores de 30 ;) » .NET »

Como pasar un Array de cualquier tipo como argumento

Estas en el tema de Como pasar un Array de cualquier tipo como argumento en el foro de .NET en Foros del Web. Hola! Bueno, mi problema es que estaba tratando de hacer una función que haga "push" en un array, es decir que agregue un elemento al ...
  #1 (permalink)  
Antiguo 09/08/2012, 23:46
Avatar de BillieBert  
Fecha de Ingreso: diciembre-2011
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 1
Como pasar un Array de cualquier tipo como argumento

Hola!

Bueno, mi problema es que estaba tratando de hacer una función que haga "push" en un array, es decir que agregue un elemento al final de un array, la función es esta:

Código:
    Public Sub Push(ByRef DiArray() as string, ByRef DiValue as string)
        Dim Limite As Integer = DiArray.Length
        ReDim Preserve DiArray(Limite)
        DiArray(Limite) = DiValue
    End Sub
Trabaja bien, solo que acepta únicamente arrays de tipo string como se puede ver en la definición, lo que yo quiero hacer es que acepte cualquier tipo de Arrays para que funcione de manera mas universal.

El problema es que si quito el tipo de Array "as string" me dice que si un argumento está definido todos deben estarlo, y si quito el tipo al argumento DiValue entonces al compilar me da mensaje de error que es el siguiente:

"No se puede convertir un valor de tipo '1-matriz dimensional de integer' en '1-matriz dimensional de object' debido a que 'integer' no es un tipo de referencia.

Agradecería que alguien me indicara si existe solución, repito: quiero hacer una función que acepte todo tipo de Arrays y todo tipo de Valores que seran agregados al Array.

Un saludo y gracias de antemano!
__________________
La religión y la política pasaron de moda. Lo de hoy es el arte y el idealismo.
  #2 (permalink)  
Antiguo 10/08/2012, 02:36
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Como pasar un Array de cualquier tipo como argumento

Buenas,

Para lo que quieres existen los tipos genéricos.

Código vb:
Ver original
  1. Public Sub Push(Of T)(ByRef DiArray() as T, ByRef DiValue as T)
  2.         Dim Limite As Integer = DiArray.Length
  3.         ReDim Preserve DiArray(Limite)
  4.         DiArray(Limite) = DiValue
  5.     End Sub

Te dejo un enlace para que te informes más sobre los tipos genéricos:
http://msdn.microsoft.com/es-es/library/w256ka79.aspx

Saludos.
  #3 (permalink)  
Antiguo 10/08/2012, 03:49
Avatar de BillieBert  
Fecha de Ingreso: diciembre-2011
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Como pasar un Array de cualquier tipo como argumento

Ooohh, vaya! no tenía idea de esto que me muestras, y de verdad que me ayuda muchísimo!
Yo andaba por otros caminos que no vienen ni al caso jaja! Pues muchas gracias :) Problema resuelto!
__________________
La religión y la política pasaron de moda. Lo de hoy es el arte y el idealismo.

Etiquetas: generics, tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:53.